[#1994] DefaultPromise.cancel() should reuse CancellationException for performance reasons