This may be hard for the community to answer, but I am wondering for what reasons did the Stack Exchange team choose to use the Microsoft stack?
From the transcript of episode three of the stackoverflow podcast
Atwood: We are not personally going to be language agnostic, because we need to actually build the site. And in terms of people actually working on it, Joel's in an advisory role, I'm gonna be writing code, and then a friend of mine, Jarrod, I'll be working very closely with. So it's sort of like 1.5 developers, so I need to actually get things done. In order to do that, I'm gonna fall back on what I know, and what I know is essentially ASP.NET. So ASP.NET is gonna be the platform
Because it's sexy. Everything else being relatively equal: go with what you know, it's a huge time saver. Also, we've found the .Net platform to scale very well.
This question comes up over and over again and the truth of it is that the people who were here at the very beginning were simply the most familiar with the Microsoft stack. So they went with what they knew.
We use many different tools and technologies. Some are Microsoft-based. Some aren't. Don't read too much into it; we simply pick what makes the most sense to use at the time.
If you're interested, one of our recently hired developers, Jon Chan, wrote up a blog post on getting up to speed with working at Stack Overflow having come from a non-MS background.
.Net has a very familiar tool stack that the developers were already familiar with as other answers have pointed out.
It's also true that since the .Net Core rewrite .Net has been getting progressively faster. For instance this article points out that the default server (Kestrel) that is used to serve most .Net (Core and, now, 5) is wicked fast. That's super important for a site like Stack Exchange where they are processing literally millions of requests a minute.