Yeah I mean if you are serious and not trying to be a language maxi, I think there are some really high performance things you can do with highly optimized C#. Specifically you can see in my core lib, its largely composed of C libraries which I link at runtime into C#. Almost all dynamic or short-lived allocations are done on an unmanaged heap. I vendor mimalloc, and rpmalloc, but mostly use rpmalloc for pre-build distributions like vncache here.
rpmalloc is a bit outdated and I'm going to have to revamp it myself but it's still a great allocator. I already have some work converting the memcache backend in vncache over to C.
I personally like the .NET sophisticated async + threadpool, good windows support with async callbacks/upcall support, windows kernel features like socket-accept buffering among others. It's also highly runtime configurable. I know many other languages at this point do similar things in similar ways, but being able to use ELF libraries or .NET assemblies at runtime like dlopen() does is super neat. It's also been 5 years in the making.
VNCache is actually just a plugin for VNLib.Webserver (part of core) which is essentially a runtime. It loads plugin assembly files (and can unload them) dynamically.
I could spend hours talking about my arhcitecture, but really it's been about only use what you need, and a lego style modular framework where the application housekeeping code is isolated from the application code.