I'd say stay away from Rx, Linq, and Async (I'd say even stay away from C#, if it wasn't too late ). Reasons:
- Not everything is as shiny as MSFT marketing like you to think. Some things Microsoft markets look very shiny from afar, but upon closer look or having using these they look only skin deep shiny. Personally I remember some database design tools that were included in VB6 that looked just great when described, but upon trying them for something other then a quick demo, I have found that they weren't even 100% implemented! Now, I'm not sure this applies to Rx, Aync, Linq or even C#, but I would not rule it out.
- It's about the community. Outside of Microsoft, only the mono team is interested in dotnet. No one else is interested in it! For example, one would think that once Microsoft dropped (sorry, evolved) Silverlight, its vocal community would pick up the mono port called moonlight and do something with it. That project is very quiet. No one wants to contribute. Having said that, it seems Ximian is doing something magical with mono with monotouch and monodroid. Check out how many games on the best seller list are made with them. Still the outside community of dotnet seems small to me compared to projects like webkit, node, v8, php, python, ruby, RoR.
I conclusion chose wisely, remember I chose VB for my students back in 2000 and it was a mistake.
If you want a language that's fast, functional, cuncurent, terse, and beautiful check out go.