Если у Вас действительно служба Windows, то для неё можно настроить перезапуск по крашу вообще без "костылей".
В противном случае - коль не получается сделать "скрипт" который не течёт и не падает - сделайте скрипт запускающийся каждую минуту, выполняющий проверки, перезапускающий службы если требуется и завершающийся.