I think I found an acceptable solution by simply throwing an explicit error when the call from create() to failure() throws. It is not super-great as we do not have a mechanism for chaining errors. At the same time I suppose these are errors that are mostly supposed not to happen (which is why, I suppose, we can get away with throwing them from basically wherever, somewhat outside of the Promise failure handling mechanism, and JavaScript can even just swallow and ignore them).
My goal now is to include this in Bill's next 8.0 release. :)