Alla fine ho trovato la soluzione a questo. Il middleware non si attivava perché devi usare remove() , save() , ecc. nelle istanze del modello, non nel modello stesso.
Esempio:
Customer.remove({...}); non funzionerà.
Customer.findOne({...}, function(err, customer) {
customer.remove();
});
funzionerà e farà tutto ciò che è in Customer.post('remove') .