Wie heißt dann der TWaitResult von WaitFor()?
Du hast es zwar jetzt anders gelöst, aber: Ja, hatte ich vergessen, dass man das noch auswerten muss. Wobei das Resultat an der Stelle eigentlich fast egal ist. Die Zeile müsste korrekt heißen:
while (FEvent.WaitFor(INFINITE) = wrSignaled) and not Terminated do