Isso soa como algo que você mesmo desenvolveu, se você já tem um serviço externo de monitoramento, e uma URL externa para postar / get funcionaria, mas parece uma solução meio inadequada.
Você também pode desativar outro processo no mesmo servidor e fazer algo semelhante. Como a geração de logs é interrompida e se grava em um log em um determinado período, peça a um processo que observe esse arquivo de log e veja se ele não foi gravado no período. Se não foi escrito, mate o processo e reinicie o programa.
Se você conseguir desmembrar outro thread, em oposição a outro processo, poderá criar uma variável LastTimeCalled compartilhada. O loop de temporizador define a variável para a hora atual e o outro processo monitora essa variável.
Mas, o problema subjacente é algum bug que faz com que ele pare, esse bug deve ser corrigido em vez de usar um band-aid.