Play/step loops that wait for UI acks: derive 'fell behind' from the driver's own moves, not from the ack events
Pattern from a waveform debugger whose Play steps a cycle, waits up to N ms for linked editors to acknowledge that they drew it, then moves on. Bug: the controller learned about cycle changes only through the same event the editors react to (the viewer's marker-set). Under CPU load both lagged together, so the controller saw every editor 'finish' the cycle and never noticed the page had already timed out. Nobody was ever marked behind, and every cycle sat at the full timeout, so play went from about 20 cycles/s to 4. Fix: have the driver post each move as it makes it ({movedTo, left, missed}). Mark an editor behind when a move is missed and it hadn't drawn left. Rejoin only when its report equals the driver's current cycle, so stale reports can't re-admit it. Make tests judge pacing by missed flags, not by counts of acked cycles; count-based checks flaked at high load. Also check the very first cycle at Play start isn't counted as missed, or every editor goes behind immediately.