Вие смесвате логиката с обратни извиквания и обещания. Така че не се нуждаете от обратното извикване, просто действайте според върнатото обещание:
myOffer._offered = undefined
myOffer.save()
.then(function() {
console.log("I get here and quit?");
})
.then(null,function(err) {
console.log(err);
});
Забелязах, че сте направили още един опит с помощта на обещанията на Bluebird, но не е необходимо, тъй като ако внедрите, както е показано тук, всички грешки ще бъдат насочени по подходящ начин.
Има бележки, че mongooose 5.x е предвидено да има по-стандартизиран подход към обещанията и/или директно да използва обещанията на Bluebird, когато е конфигуриран