There's nothing "sudden" about the popularity of C#, it's been quite popular since its birth at the turn of the century.
Also, I don't understand how you can consider C# to be a step backwards from Java; if anything, C# is several steps ahead of Java. The cross-platform "issue" you mention is only an issue of politics and not one of technical capabilities; Microsoft (erroneously, IMO, but that's neither here nor there) sees no value in doing the work of bringing the .NET platform to non-MS platforms. The other issue... "a language that's run by a corporation rather than a community" is actually more of an issue with Java than it is C#; Sun still controls Java with an iron fist, despite IBM's continual pleas. Edit: Not anymore. Now IBM has to beg Oracle to modify Java...
So, to the actual question, why is C# popular?
Because:
It really is a great platform for programming. There are numerous improvements over Java, such as:
- Value Types
- Properties
- Delegates and Events
- Global Assembly Cache
- Runtime Generic Support
It's constantly evolving, both in terms of library support and new language features. For example:
- LINQ (it will change the way you iterate a collection!)
- Lambda Expressions
- WCF
- WPF
- Closures
And coming up in C# 4:
- Dynamic types and the DLR (i.e. runtime type binding, like python)
- Named and Optional arguments
- Covariance and Contravariance
In terms of IDEs, Visual Studio is pretty darn good. I'll admit that there are features of Eclipse I'd like to see in Visual Studio, but there are features of Visual Studio I'd like to see in Eclipse, too. There's also MonoDevelop, which is shaping up nicely.
Plus, there's a great community of fellow programmers who are always willing to help out. This site is the perfect example of that.