State-machine ist natürlich immer gut, aber wenn Du nur wissen wolltest, wie man genau Dein Beispiel auf einfachste Art zum funktionieren bringt, dann würde ich diese "extrem rudimentäre State-machine" vorschlagen:
Als Pseudocode sähe das so aus:
begin:
do y
if Stop then exit
do x
If Stop then exit
goto begin
exit:
(Hier wurde nicht mit eingearbeitet, dass es sich um eine For-Schleife handelt, die bei Erreichen von i=N auf natürliche Weise beendet wird. Gegenüber Deinem Beipiel ist N [- bei mir fehlerhafter Weise gar nicht angeschlossen -] zu verdoppeln, da die Schleife für einen vollständigen Zyklus immer zwei mal durchläuft)
Gruß Ludwig