Я не сталкивался со случаями, чтобы скрипты зависали. Они могут либо выполняться, либо нет. Проверку на то, выполнился ли скрипт, можно добавить в последний описанный метод. Другой вопрос — проверка, выполнил ли скрипт то, что мы хотели или нет. У меня есть несколько решений, в ближайшие дни напишу об этом.
Использовал скрипт, который прибивал системный процесс, в результате чего происходил soft reboot:
Если каким-то образом будет известно имя процесса или его id, то можно таким скриптом прибивать другие скрипты