Você pode tentar converter a lista de resultados para documentos do Mongoose e envolver o resultado em uma promessa como:
Company.aggregate(pipeline).exec((err, result) =>
(
new Promise((resolve, reject) => {
if (err) {
reject(err)
} else {
resolve(result.map(doc => {
delete doc.company_users;
return new Company( doc );
}))
}
})
))