I didn't do anything to hold the buttons down. As I said in the post I only tested for output in text editors. I tried playing Joust in MAME right after I posted and realized how unusable the code is as it stands now. I didn't read too much into the digikeyboard lib to see how to send key press and release events.
If the sendKeystroke() method works as you describe it shouldn't be too hard to go into the lib and copy and past the code into separate functions to create sendKeyPress() and sendKeyRelease() functions, maybe even a sendReleaseALL() function to clear any keys being held down.
After modifying the lib, my code above would need to be modified to store the button states so it can sense press and release.
I haven't touched this code at all since I got the NES controllers successfully hooked up to the GPIO pins on my Raspberry Pi. It's a pretty mean MAME box now, especially when its housed in the NES case.