Lösen kann ich das Problem zwar, indem ich das Skript aufteile und im Kontrollfluss immer zwischen Skript und Map quasi hin und her gebe, besonders schön finde ich das allerdings so nicht
...
Doch, das ist eigentlich die sinnvollste Lösung.
Umsetzen lässt sich das genauso wie beim Interpreter über einen @wait_count. Mal ein Beispiel:
In Scene_Map#update rufst du dann regelmäßig mein_object.update auf.