A execução de um ambiente de desenvolvimento em um chroot no ambiente ativo é uma ideia terrível. Ele não atende à sua exigência de isolar o ambiente de desenvolvimento do ambiente ao vivo. Tudo o que é necessário é um pequeno erro para matar o processo do servidor ao vivo, em vez do servidor de desenvolvimento, ou fazer com que o servidor de desenvolvimento escute na porta 22 ou 80.
Você pode executar um ambiente de desenvolvimento como um chroot em uma máquina de desenvolvedor, mas é mais difícil do que configurar uma máquina virtual. A única razão pela qual eu posso ver para não usar uma VM é se o seu hardware é muito antigo para executar uma VM confortavelmente, o que você diz não ser o caso. Uma VM oferece um ambiente de rede autônomo (para que você possa testar serviços em suas portas reais, com seu firewall real), um ambiente de processo autônomo (para saber quanto de memória você realmente precisa e quanto de CPU você realmente precisa), etc. .
Idealmente, se o desempenho permitir, tanto o ambiente ativo quanto o ambiente de desenvolvimento estarão sendo executados em VMs, usando a mesma tecnologia de VM. Isso fará com que a implantação seja de baixo risco.