From what I observed (but it's not something I try often), if you try to enable
maintenance on a host and have VMs on it, it will try migrating the VMs first, which is a
copy-first, state-transfer-afterwards process. So if there is no migration target
available or if the copying and state-transfer fail, the VM will simply continue to run on
the original host... and the host will refuse to go into maintenance.
It doesn't solve your problem, but the loss of service you fear shouldn't happen
either... except sometimes oVirt seems to have bugs or the resulting network activity
cause confusion.
Ah, perhaps this is important: I've only ever tried that by setting a host into
maintenance (typically for patch updates) via the GUI. I am far less convinced that VM
migration would also be triggered if you use the 'hosted-engine --set-maintenance
--mode=local' variant on the host that runs the HostedEngine VM. That might just make
it unavailable for newly started VMs.