This is just a small thing but I think it would be helpful.
When a machine is a VM it should be marked as so, in the mouse over, node details (yes I know state and such is there) but just some simple icon or something like that to denote that this is a VM.
When you have hundreds and hundreds of servers of the big problems you have when you need to find one is finding out where the heck it is. We use custom properties for location and such but a moniker of VM would greatly simply things.
Good request. If I could just provide a tip, hopefully a good one for you.
You mentioned using Custom Properties etc. I have a custom view configured by City, Comments, and Status. For Comments, I label a server, as SERVER. Router as ROUTER and Switch as SWITCH. While I don't have any vm servers monitored today, if I were to add one I could label the comment as SERVER-vm and they would be grouped by Location, and then by SERVER-vm.