erm let me clear up some misconceptions
C++ is a faster language than C# simply because of its nature of interacting with lower level code. With that being said, for most people it's not really that much faster than .NET unless you are some C++ guru that can pull off tons of unmanaged optimization hacks in your code while retaining your structure. C++ is also the primary programming language for interacting with GL and DirectX, as graphics programming and GPU queries are best left at an unmanaged state. C++ is crossplatform (CROSS platform, not multiplatform) and will run just about on anything that you could call a "computer".
With that being said, for most people, .NET is far faster to develop, and is just generally easier to work with. Productivity isn't something this community has a surplus of, and if you want to get any project done, I suggest giving yourself whatever incentive/motivation you need to get it DONE, rather than staring at the figurative wall of code you have to do with C++ "just so it can be marginally faster".
The real backbone of a server's performance is how all of its different components function together with the least friction (responsible software engineering). Yes, there are game-breaking issues with the timekeeping logic, and sending data over to clients. But after those issues, what will really determine if the server will run between 200 clients to 20,000 clients is how the components scale and interact.
You're not really concerned with whether the server can run 200 to 20K clients. You just want to have it run maybe 50ish people. All you really need is to fix some logicTicker shit, fix various things with sending updates and crafting the update packet, and you should be set for all pserver ambitions.