Resulta que node.js acepta llamadas a funciones de la misma manera que lo hace la interfaz de línea de comandos. Cada función tiene un último argumento opcional como función de devolución de llamada. Así que este código se ejecuta y devuelve los resultados correctos:
collection.find({ 'category_id': 10 }).sort({_id: -1}).limit(10, function (e, d) {})