I think the virtual switch method is the best way to do this. The rule should not be too difficult. As mentioned a virtual switch has a auto off function. So when the switch turns RM sets the mode. The switch then turns itself off in 1 second.
@UKMedia Did you set those switches up as 4+ individual virtual devices, or as a single 4-button virtual switch? Just curious (since many users strive to minimize the list of Devices in their Hubitat UI).
Nice, the "Virtual Contact" makes even more sense, since you can (in theory) use those to trigger Routines over on Alexa (not that this is a likely use-case).
That's exactly how I use mine. e.g. I have an Alexa routine called 'Goodnight' which turns off the lights and uses one of these virtual switches to set the HE mode to 'Night'