First steps towards getting onFulfilled and onRejected to run on one queue while the promise synchronization runs on another while making sure that nothing runs if either of the promises are dealloc'd.