Los logs de heroku señalan que te falta un parametro en el callback de tu ruta. Agrega el tercer parametro next
.
router.post('/send-email', cors(), async (req, res, next) => {...
Esto es necesario por que el código que presentas, en el bloque catch, brinca a otro controlador (en este caso un global de errores) con next(error)
. Esto debería solucionar el problema de cors también, ya que heroku manda una petición extraña a la original lo que activa la protección por cors en el navegador.