Primeiro, perceba que é uma segregação entre hardware e software. Eles não se combinam dinamicamente porque são coisas radicalmente diferentes.
I'd love to have the disk image contain the file system directly, without any partitions.
A tabela de partições é como o SO sabe qual hardware tem uso oficial em termos de armazenamento de dados. Um sistema operacional típico NÃO descobre o tamanho de um disco dinamicamente. Isso requer que, se você alterar o tamanho do disco subjacente para "menor", será necessário alterar a tabela de partição para corresponder; mesmo se você usar as extensões da unidade para a partição.
Além disso, o hypersvisor não reconhece os detalhes do sistema operacional e suas partições, pois as partições são inerentemente software e o hypervisor simula somente o hardware.
Isso significa que você precisa de uma solução integrada de software / hardware em que cada um esteja ciente e no controle do outro. Eu não tenho conhecimento de nada disso.
This would allow for easy resizing from within as well as outside the VM.
Pense em uma VM em termos de hardware, essencialmente, o que você está pedindo é mudar o tamanho de um disco rígido real e ter o sistema operacional ajustado dinamicamente. Não é assim que as coisas são configuradas. Alterar um tamanho de disco virtual versus um tamanho de disco de hardware real não é diferente do sistema operacional. Só porque é virtual não significa que eles "integram" de alguma forma.
How should I organize a VM disk image so it is as simple as possible to resize?
Você pode segregar seu sistema operacional de todos os outros arquivos; isso é ter um VD (disco virtual) separado para o seu sistema operacional com espaço suficiente para alterações e atualizações. Em seguida, instale as "outras coisas" em outro VD. Isso deixa você modificar uma partição da unidade não-raiz que é inerentemente mais fácil do que modificar a partição de uma unidade raiz. A maioria das minhas VMs tem pelo menos dois discos virtuais para esse fim.
LVM também é outra coisa que é suposto ajudar com isso, mas não estou familiarizado com todas as opções existentes.