Sempre aterre os callbacks que sua API está expondo. Se o consumidor lançar uma exceção, ela irá borbulhar em sua pilha, impedindo a execução futura.
// ground callback exceptions
try{callback(true);}catch(ex){}
// ... or this part will never be reached
defer.resolve(true);