process_submitted_jobs creates InstanceModel (ComputeGroupModel) models only after provisioning succeeds. This is problematic:
The solution is to add a process_submitted_jobs step that creates and commits InstanceModel (ComputeGroupModel) "reserved" models. Then provision against those models and either promote them or delete them. Introduce InstanceModel.provisioning_job_id that means that the instance is being provisioned by process_submitted_jobs and ignore it in the instance background task.