Esse seria um cenário clássico de clustering de failover, de modo que esse deve ser o caminho a seguir; mas nem todo aplicativo suporta MSCS, eu sei.
A única solução que posso encontrar é um serviço "controlador" em execução no servidor de backup, que periodicamente pesquisa o principal e começa a funcionar se ele não responder por um tempo.
Mas isso parece mais simples do que realmente é, e eu vi softwares "redundantes" (até mesmo os mais caros) tentarem isso e falharem miseravelmente.