Indeed this is pretty much what happens - I have one script that actually creates the VMs (from cloning) based on the list of required machines passed to it, and then configures them. Another script will start them and further scripts will kick off applications. The last script, of course, is run as a distributed job.
I understand the restriction on parallel running at the host (a shame it has to be so, though!) It would be good, however, if there was a way to get at the resource list directly and filter it to determine the target machine list. An option provider seems to be my only choice here.
Thanks for your answer - I might explore some other options. I'll post if I get anything not-too-ugly to work