Este es un problema típico de máquina de estados.
https://es.wikipedia.org/wiki/Aut%C3%B3mata_finitoPara resolver un problema así, primero hay que diseñar la máquina de estados.
Esto se hace dibujando unos círculos, que son los estados en los que puede estar el sistema y luego dibujando unas líneas, que son las condiciones para pasar de un estado a otro.
Una vez que la máquina de estados está clara, sólo hay que programarla en cualquier lenguaje.
Algunos programadores con experiencia pueden programar directamente una máquina de estados sin haberla dibujado ni haberla imaginado. Los resultados no suelen ser muy buenos, así que imagínate en tu caso que no tienes experiencia.
Ya que estás aprendiendo, lo mejor es comenzar haciéndolo bien.
He podido ver algunas chapuzas bastante grandes y que han costado retrasos y una buena cantidad de dinero por lanzarse a programar sin analizar antes el problema.
Analizar los estados de la máquina no es sencillo la primera vez. Te propongo los siguientes:
Situación inicial
Primera tecla pulsada
Segunda tecla pulsada
Tercera tecla pulsada
Todo el código correcto
Ahora tienes que definir qué tareas se hacen en cada uno de los estados y qué condición es necesaria para pasar de un estado a otro.
Todo esto es complicado y hay otros caminos más rápidos y sencillos, pero ahí queda eso por si quieres hacer las cosas despacio y bien hechas.
Un saludo.