Ранее я писал, что Вам проще уйти от хитрых схем и менять только задержки, тем более, что Вы написали что только их требуется задавать.
В приложении мой пример чего я хотел сказать.
Если подать 0 на вход макроса, то он обнулит таймаут, т.е. если сделать 0 программу, она будет сбросом. Помогает не ждать завершения программы, 0 программу можно принудительно запускать перед запуском выбранной оператором программы. (к блинк можно точно так же прикрутить макрос и для задания времени задержек и для сброса) Все задержки задаются в мс. Соответственно в макрос можно добавит нужное Вам количество выходов, и прикрепить задержки соответствующие каждой программе.
Я нарисовал вторую часть, т.е. реализацию задания задержек в зависимости от выбранной программы. За кадром остается выбор программы на экране и что будет являться триггером на запуск самой программы. Т.е. к этой части прикрутить экран, добавить нужное кол-во задержек и будет счастье.