Thank you for your time. You led me on the right path. However:
qvm-run-vm is bogus
Not so. Does not work for me. qvm-run: command not found. Is it because the call is executed in the template and not dom0, and (at least in my case, Archlinux template) there is no qvm-run available in the template?
State 'qvm.shutdown' was not found in SLS '<PATH>'
Reason: 'qvm.shutdown' is not available.
Again: because this runs in the template?
So the following works for me. As the shutdown now call results in a vchan connection closed early error, I am now forgoing the entire unless business and define return codes 129 (target VM not running) & 255 (connection closed early) as a success: