submit jobs from the 'run' method, not from 'configureJobs'

this changes the behavior slightly - if any synchronous jobs are encountered in
the sequence of jobs, they will be run (and waited on) before any further async
jobs are submitted.