Das ist alles weitestgehend richtig. Zwei Fehler sind mir aufgefallen:
Die Methode state? erwartet die ID des States, nicht das State Objekt selbst. Und die RGSS ist an der Stelle leider sehr sparsam mit Fehlermeldungen. Also einfach state.id hinschreiben.
Das soll vermutlich @state_window.refresh heißen.
Solche blöden Fehler findet man nur durch exzessives Einfügen von print Befehlen.