We struggled with this for a while as well and turned to SDK support for a resolution. We are using the event "VMPSMasterWorkflow32.MachineProvisioned" at a "PRE" state. Passing the value below will cause the build to fail and delete the VM. Keep in mind, the vRO workflow must succeed in order to properly pass the OUT variable. We have achieved this by using error handling to set the value and send an email.
workflowNextState = "DeactivateMachine"
Thanks I'll do some testing with this. Hopefully I'll get the results I'm hoping for!