Alternativ hättest du auch noch probieren können, das EFWAIT ans Ende der Schleife zu schieben. Falls das nicht hilft (oder die Logik plättet), dann danach den my-Pointer nochmal explizit überprüfen und ggf. Exitus.
Und wenn das nicht hilft, vor dem Rücksetzen von enemy_freeze ein wait(1) rein. Dann muss die Entity Funktion auf jeden Fall nochmal durch ein wait() durch direkt nach dem Levelwechsel, und muss eigentlich beendet werden. Anders könnte rein theoretisch ja noch der Rest der Funktion ausgeführt werden, und dann knallts natürlich (auch wenn ich eigentlich erwarten würde, dass die Entity Funktionen vor Start des Levels abgebrochen werden).