Вам может подойти 2 варианта: WebAPI либо Worker Service.
WebAPI предоставит вам конечную точку(узел) на который вы можете делать HTTP запросы из браузера, через curl и др. Т.е. инициатором какого-то действия будет запрос из вне. Но так как у вас процесс должен работать сам, без участия человека - этот вариант не особо подойдёт, но можно добавить планировщик, например - Quartz, который будет раз в указанное время запускать нужный вам код. А по HTTP вы можете периодически забирать статистику работы вашего приложения.
Worker Service - работает сам, можно сделать работу по расписанию или по другим условиям. Пишете функцию - она будет вызываться сама. Думаю, вам скорее нужен этот вариант.
Про отказоустойчивость: вы можете погуглить механизм Health Check, можно настроить автоматическую проверку жизни вашего сервиса и в случае обнаружения плохого состояния - автоматически его перезапустить.