Из своей практики (MUMPS) могу предложить:
1. Такой же как у И.Ермакова с переменной ok.
2. Каждый этап оформлен как функция, возвращающая успешность выполнения. Тогда получается что-то вроде (сама идея) :
IF        not этап1
ELSEIF not этап2
...
ELSEIF not этапN
ELSE    итоговые

3. WHILE  в комбинации с CASE в теле WHILE  (что то вроде наипростейшего автомата)

P.S.
А сама конструкция (начало темы) не очень нравится