Respondendo a minha própria pergunta. A solução mais fácil e simples é sudoers. Nós podemos fazer muitas coisas com expressões regulares de sudoers. Eu simplesmente adicionei uma regra de sudoer.
Guarde todos os nomes de máquinas convidadas de tal forma que você possa especificá-los usando algum tipo de regex. No meu caso eu mantive todas as máquinas convidadas, aquelas que eu quero que sejam controladas por usuários não-root, começando com vmname -.
Abaixo da regra permitiria que usuários não-root iniciassem e consigam o console a vm e não permitirão que ele seja destruído.
Cmnd_Alias KVMCMD = /usr/bin/virsh list --all,/usr/bin/virsh start vmname*
Cmnd_Alias KVMBAD = virsh destroy vmname*
Espero que isso ajude alguém que esteja procurando uma solução semelhante.