Deal with rogue thenables firing more than once
Reject promise when fulfilled with the promise itself