I've plugged this into our monitoring.
When the UPS' are at 50%, it puts the general cluster into global maintenance & then triggers a shutdown action on all of the VMs in the cluster's service group via the monitoring agent (you could use an SNMP trap if you use agentless monitoring). Once all of the VMs are down, it then continues with the hosts.
At 20%, it does the same with our "core" cluster.
This method means that the HE can be shutdown, and it works whether the HE is up or not.
For emergencies when the monitoring is offline, I've also hacked up a bash script which parses the output of vdsClient & uses a loop to send a shutdown signal to all of the VMs on each host.
Doug