Clean up provisioning to make it cleaner

* more likely to get "good" instance - will retry if provisioning fails
* if api connection doesn't work don't bail out of entire suite
* note - to improve would be better to not even queue a vm until it's ready but then it gets complicated because we may end up creating more instances than the queue can hold.