Muitos dos problemas podem ser ignorados ao usar o TeamViewer . O cliente só precisa iniciar o programa e informar a você o ID (estático) e a senha (temporária); o programa cuida de ignorar NATs e oferece área de trabalho remota e transferência de arquivos. Não há alternativa ao SSH, mas o TeamViewer aparentemente também permite a VPN na rede do cliente. (Não tenho certeza se isso funciona sem Admin / root.)
Para o DNS dinâmico, você pode reutilizar as ferramentas existentes "atualizador DynDNS", por exemplo, inadyn - elas podem ser apontadas para servidores arbitrários, e todas funcionam fazendo uma solicitação HTTP simples que você pode registrar .
Para "suportar vários computadores além de seu roteador", o IPv6 vem à mente - se apenas o seu ISP oferecesse suporte ... caso contrário, a VPN (você está certo sobre como eles funcionam) será mais confiável se um endereço interno for alterado ou um novo dispositivo está conectado.