Nun aber sie müsste zumindest besser laufen oder nicht?
Prinzipiell müsstest halt die Keys in einem separaten Thread erfassen der nicht blockiert und das dann halt mit der Bewegung und Ausgabe wieder synchronisieren.
Bisher hast du halt mehr eine state machine wie man sie z.B. auf einen Microcontroller machen würde.