En un lugar externo pones un balanceador de carga que redireccione las peticiones a un dominio u a otro.
Por ejemplo, muchas web tienen un dominio www.ibm.com que lo único que hace es recireccionare a www1.ibm.com o a www2.ibm.com. Cuando se caeuno, se actualiza la tabla para que no redireccione y ya esta.
Otrra opción es que todas las peticiones las responda un proxy inverso y que este tine de uno u otro, esto esta bien, pero deberías duplicar ese proxy inverso, por lo que llegas al mimso problema, algo que redireccione a uno u otro.
Otra opción es por medio de DNS con round robin como tu bien dices, pero poniendo unos tiempos TTL muy cortos, para que los servidores DNS de los proveedores no cacheen la resolución y cuando elimines uno, sea mas o menos rápida la respuesta.
Todas estas opciones, dependen de lo bueno que sea tu sistema para detectar que un servidor esta caido y que hay que eliminarlo del round robin, sin eso, como te has dado cuenta solo hay balanceo de carga, pero no una buena protección de fallos.
La mejor alternativa es combinar todas las opciones, tener un grupo de servidores web que redireccionen a las maquinas que realmente sirven páginas, accesibles estos primeros con un sistema de DNS que elimine el que no este funcionando. Y los servidores reales a su vez replicados, con un proxy inverso (nivel 7) o un switch inteligente (nivel4) que haga el balanceo de carga entre ellos. (importante la "afinidad de sesión" si se trata de aplicaciones web dinámicas.
Todo ello implica muchos contratos con diferentes proveedores de servicio y poner muchas máquina en muchos sitios, pero teniendo en cuenta como se hacen las cosas profesionalmente, puedes empezar a recortar hasta que te seintas cómodo con el presupuesto necesario. Yo en tu caso, me contrataría un plan minimo en un servidor externo linux, unos pequeños scripts que periodicamente miraran a ver si los servidores estan accesibles, y una página index.php o similar que redireccionara a unos u otros de la lista de servidores activos.
un saludo.