Acho que o maior problema que você está enfrentando é que a maioria dos conceitos de uma conexão ou sessão de software é entre um endereço IP de servidor e um endereço IP de cliente. Assim, como seu cliente - ou, na verdade, o gateway NAT que o servidor pensa ser o cliente - provavelmente tem dois endereços IP públicos diferentes, um para cada link WAN, quando um desses uplinks falhar, esse endereço IP não estará mais acessível e a conexão da Área de trabalho remota (assim como a conexão VPN) terminaria.
Se você fosse uma grande instituição, você poderia ter um Número de Sistema Autônomo (ASN) e um bloco de endereços IP atribuídos diretamente a você pelo RIR ao invés de ser separado de um bloco que foi alocado para seus ISPs, e então você poderia anunciar mais de uma rota para sua rede (uma através de cada link WAN de failover) e então você poderia ter um único endereço público. O endereço IP do seu gateway NAT ou do seu cliente e os pacotes encontrariam a rota certa para você, mesmo se um dos links cair.
Mas, além disso, você provavelmente está preso tentando encontrar o software do tipo Área de Trabalho Remota que pode estabelecer várias conexões TCP para uma única sessão de login do cliente, para que quando uma conexão TCP falhe, a outra assuma. Mas eu não conheço nenhum software que possa fazer isso.
Existem projetos de pesquisa e novos protocolos propostos que não são amplamente implantados e que funcionam como tipos de protocolos de camada de transporte flexíveis e redundantes que poderiam lidar com a situação descrita por você. Um que vem à mente é SCTP . Existem provavelmente muitos, muitos outros. Infelizmente, não conheço nenhum aplicativo que use qualquer um desses projetos de pesquisa ou protocolos propostos, portanto, não parece provável que você encontre uma maneira fácil de fazer isso.