I would like to limit the IOPs for a disk of a VM based on the VM configuration (combination of CPU/RAM).
VCloud has the AMQP event tasks you might be able to us. This would let you know when a vApp was instantiate or deployed. That might let you trigger a little better that just on a timer.
Also a warning - I did a similar thing, but for changing some reservation values while systems were online - it worked - however vCloud will show a "System Alert" on every VM - and vApp - that gets a change done via the vSphere API. This is a warning that something outside of the vCloud control was changed. To clear these I just did a vCloud database update, but it was something extra I had to do so my users would not see all the "errors."
Just as a side question - would using storage profiles do what you need? (I know they are not in vCloud director right now...)
I wasn't aware of the AMQP abilities of vCloud, that sure sounds like a interesting direction to investigate.
AMPQ is definitely a possiblity but you could also just create a vSphere alarm which is triggered upon a VM deployment and automatically run a script which sets a particluar IOP limit. You would of course want to validate this works but this can also provide you a way without having to relate both enviornments and just have it automated for you.