Fix: empty then()/done() should not, by itself, cause rejection to fall off