Fixed support for held buttons.

Waiting for the repeat delay to trigger multiple times caused a pause after the initial keypress.
Direction handling may still need some work.