throw Exception when resulting promise will never fire
isDone is more accurate word in Promises; prevent deadlock (then() called isReady() which required released mutex
noting to say..