It's in no way in a worse place than, say, java. It would be nice if the CLR and Roslyn was open sourced, but I wouldn't make it a primary concern when choosing a platform for a project. The ecma standardization feels at least as important.
Right, but that's just because Oracle has been such a shitty owner of Java. However, at least Java is supported by more than 1 company on more than 1 platform; C# doesn't offer any real advantages over Java (other than some cosmetic language features).
Xamarin is one of the biggest backers of C#/.NET, and the reason .NET is probably the simplest way to create a 3-platform smartphone application today. You can even use F# for that which is even nicer than C# and open source. So the ecosystem has a few open source languages and several backing companies.
I know many of the differences. C# is a newer language, more novel VM, designed from start for multiple languages, C# has linq, unsafe code, unboxed structs, properties, events, delegates (Java now has lambdas), dynamic... But it's not fundamentally different, and offers exactly the same way of structuring applications.