Você está misturando lógica com callbacks e promessas. Então você não precisa do callback, apenas aja de acordo com a promessa retornada:
myOffer._offered = undefined
myOffer.save()
.then(function() {
console.log("I get here and quit?");
})
.then(null,function(err) {
console.log(err);
});
Percebi que você fez outra tentativa usando as promessas do Bluebird, mas não é necessário, pois se você implementar conforme mostrado aqui, quaisquer erros serão roteados adequadamente.
Há notas de que o mongooose 5.x está programado para ter uma abordagem mais padronizada para promessas e/ou usar diretamente as promessas do Bluebird quando configurado