Utilise a pair of buffers to accept input :
1- A keystroke buffer
2- A complete command buffer
the keystroke buffer accepts input as is from the keyboard..(or wherever) but also records timing and idle periods. by repeatedly scanning this buffer and checking for recognisable patterns (such as the infamous quarter circle), a seperate routine will then insert commands into the complete command buffer, which the actual engine sees.
I've implemented a small test version of it in QBASIC and it seems to handle twitch response rather well. Does anyone have any comments, suggestions, or better methods?