I believe this is due to this check in the cancel method
while (promise._isCancellable())
This check is in this cancel function
Promise.prototype["break"] = Promise.prototype.cancel
When this check is made, the promise is always resolved so it's not cancellable.