Скорее всего, потому-что в запуске быстрее отрабатывает и элементы не успевают появиться какие-то. Надо добавить пауз или ожидания элемента перед теми кнопками, которые не нажимаются.
Вариант, чтобы перед каждым действием ставить проверку пришло ли время остановки, это мне кажется уже крайняя мера и не слишком элегантная. Да и не надежная. Скрипт может на одном действии загулять и пропустит чек времени.
Это нормальный вариант. Продумай логику такую, чтобы ничего не загуляло и не пропустило чек времени
Сам недавно сделал себе рандомное ограничение (греет от 5 минут до 15 минут) в 3 потока на 1 модеме. Чек на время всего в двух местах и ничего не пропускает.