Как понять почему он останавливается?
Добавлять логи, чтобы видеть в каком конкретно участке кода он останавлавается.
Как его перезапустить если произошла остановка?
Ну так остановка же не произошла. Зависание != остановка. Или все таки скрипт заканчивает выполнение но не с тем результатом который ожидается? Это очень разные вещи.
Зависание при запуске из VSCode вы никак не задетектите и не рестартанете - тут нужен вотчдог.