Should I upgrade the RAM on both servers and virtualize everything?
Sim
If I go that route does it become that much of an issue for cold starts for the Domain Controllers to be virtual?
Adicione a função de controlador de domínio à máquina host Hyper-V. Isso permitirá que você autentique mesmo se o controlador de domínio VM estiver inoperante.
If I make one of the virtual machines handle VPN as well, does that increase the security risk to the domain since the machine would house other virtual machines also?
Não, mas se você for paranóico, adicione uma NIC adicional e dedique-a à VM da VPN. Cada VM é como uma máquina normal. Cada NIC se torna uma porta de uplink de switch.
Along this question also what is deemed acceptable to have installed for a network on an externally facing server?
De um modo geral, o mínimo possível. Não tenho certeza de quais detalhes você está procurando aqui. Eu definitivamente tornaria o servidor VPN uma VM separada. O resto dos papéis / servidores que você quer rodar você pode dividir como quiser. Quanto mais granular você estiver nas funções, maior a flexibilidade necessária para dividir os recursos, a desvantagem é que há mais sobrecarga do que se os papéis / servidores fossem combinados.