Para um serviço mal comportado como esse, criaria um script pequeno que verifica se ele está sendo executado e o inicia, se não estiver. Então eu usaria tarefas agendadas para executar o script a cada 5 minutos ou mais.
Exemplo de script (verifica o serviço de spooler):
@echo off
Rem Look for the Print Spooler service in the list of started services
net start | find /i "Print Spooler"
Rem if not found, start it and a restart occurred.
if "%errorlevel%"=="1" (
echo Service "Print Spooler" restarted at %time% on %date% by Script %0>>c:\ServiceRestart.Log
net start "Print Spooler"
)