This might be a little simpler if you just returned the promise that comes from `.spread` instead of a promise from yet-another deferred `overallDeferred`, making sure to reject the `executionDeferred` on failure, but, hey, whatever floats your boat.