Welcome to the MongoDB Community Forums. I understand that you are observing a 10x performance difference between the .NET/C# Driver and the Node.js Driver. Reviewing your C# code, I notice that you call ToListAsync which will not only execute the query, but also exhaustion of the cursor possibly requiring multiple roundtrips to the server to fetch all the 16MB batches. It will also deserialize the returned binary BSON returned on the wire into C# BsonDocument objects.
Without seeing your Node.js code it is hard to say whether your Node.js code is doing the same amount of work. Typical Node.js usage would be to return the result of Collection.aggregate, which is a cursor and not the deserialized results. You can achieve a similar result by calling ToCursorAsync() in your C# code. This will execute the query and return a cursor to the results that can be lazily iterated.
Please try ToCursorAsync in your C# code and see if you achieve similar performance results as your Node.js code.