Recht hast du, aber dafür gibts ne Lösung: Bau in das PP eine weitere fork ein, nämlich:
fork (Phase < -5) {Phase = 1}
und hau ein Phase = -10 vor jede PP-Aktivierung, das kann von keinem Phase++ zerstört werden
Das hast du getestet? Von echten Hochsprachen kenne ich, dass man der Machine nicht trauen darf und außer synchronized-Krams keine Atomarität besteht, andererseits könnte der Maker natürlich auch anders yielden - kann es sein, dass die Wahrscheinlichkeit auf einen schlechten Thread-Wechsel zwischen einer Bedingung und einem Befehl einfach verdammt klein ist?