На самом деле, пример остался ещё с первой версии задачи, где предполагалось, что проверка состояния датчиков будет происходить после выполнения роботом очередного кванта действия. Однако такой вариант не очень согласовывался с асинхронным поведением робота и я от него отказался. Поэтому проверка на возникновение события не квантуется, и как только оно возникает - робот получает команду на остановку двигателя. Если двигатель еще не успел произвести перемещение робота, он останавливается. Если-же двигатель уже передвинул или развернул робота хоть на миллиметр, робот завершает квант движения (поворот на 90 градусов или перемещение на 1 клетку), после чего останавливает двигатель.
Пример, который мне прислал один из участников олимпиады, хорошо все это иллюстрирует:
... когда робот смотрит на север и написать
LEFT
WAIT DN
то он повернется вокруг оси?
Нет, не повернется, т.к. событие возникнет до начала движения робота и двигатель будет тут-же остановлен.