Es funktioniert nicht, weil str_for_key einen Scancode in einen String verwandelt nicht umgekehrt.

Und ja, das kann man viel besser realisieren, einfach mit:
key_forward = key_lastpressed;