More conventional callback use for submit

In order to propagate errors properly... it would not be possible to handle errors in sequence without also waiting for jobs to complete in the old implementation