I'm not sure what was going on, but the loss of keys is tied to the size of the emulator window. At small sizes, no keys are lost. At fullscreen, lots of keys get lost.
I've added code to prevent repeated keys due to held keys. Works nicely.
The color problem has not been fixed...
It looks like its time to start working on a shell.