Хорошо бы сделать так, чтобы их не было вообще. Если программа падает, а меня нету на месте, то кто ее перезапустит(у меня падала за неделю два раза)? Можно конечно прикрутить какой-нибудь watchdog снаружи, но хотелось бы, чтобы все критические ошибки отлавливались и владельцу посылалось уведомление по sms или на почту.
Можно сделать как клиенсткую, так и серверную реализацию. Серверная наверное попроще. Достаточно, реализовать аналог пинга.
Вообще, что можете предложить для бесперебойной работы, может быть в программе существует режим failover(с двумя копиями или что-то еще)?