Thank you for the great writeup, @pmcmahon!
A minor comment on configuring disp vms: you can do this through Salt as well.
create-guardian-template-disp:
qvm.vm:
- name: guardian-template-disp
- present:
- template: guardian-template
- label: black
- class: AppVM
- prefs:
- template: guardian-template
- template_for_dispvms: True
- netvm: ""
Just add
- default_dispvm: ""
to the pref section.