First of all, one of the core abilities a good programmer must possess is being able to take information on a subject, potentially incomplete or misleading, and act on it. Hamstringing yourself by agonizing over every decision will get you no where. The fact of the matter is, these guys:
We receive answers like "language doesn't matter, learn algorithms, design principles, oop structure, etc", or "after learning java you'll jump to C# easily"
are pretty much spot on. You're not going get an informed, unbiased view by talking to other people; you can only get that from looking at the evidence yourself and trying both to give them a fair comparison. Your emphasis on framework over language is irrelevant in this regard; the same tenets apply.
With that being said, I can give you a (in my opinion) fairly informed (though certainly not unbiased) view of the State of the Union, as it were, in managed development.
Portability: Both Java and C# share a mostly equivalent amount of "portability points" in the language ranking wars. C# runs on Windows, Xbox, and Windows Phone, via .NET and on a huge plethora of platforms via Mono, including some of the other game consoles, and even on embedded systems. Similarly, Java runs on mostly the same set, with a few differences such as Android instead of WinPhone (embedded systems for Java are not unheard of either.)
From personal experience regarding Mono, it works just fine. I've worked on the Mono runtime, and while it's admittedly not as good as the Microsoft one (which is developed and maintained by some of the best engineers in the business), it has some nice bits that aren't even available in .NET (such as support for SSE intrinsics). I happen to think the code generation is quite good too
Language: As you've said, this one is mostly uncontested by those who take even a remotely unbiased view of things. Java and C# were very similar languages when C# first launched; in the intervening decade however, C# has continued to grow and implement new features, whereas Java has mostly stagnated. Once you've used some of the new features such as lambdas, dynamic typing, expression trees, or the asynchronous programming support, it'll be painful to go back to a language that does not have them.
Performance: You're not going to get graphs and charts of performance because you can't compare the performance of something so abstract as a language, or even of a framework as a whole. You can only benchmark specific tasks and processes within said constraints, and you can find such comparisons all over the place if you look. On the whole, it wouldn't surprise me if equivalent C# programs ran faster on average, but I'd say that's more because C# provides a greater range of language features that allow you to implement the same algorithms with less overhead. For example, Java has no concept of value types. C# can make use of these to avoid allocations in tight loops, reducing GC pressure.
Platform: Just as a Windows user, I have to say that I absolutely despise Java as a runtime platform. The installer tries to install random toolbars, the updater runs regardless of whether you disable it in the settings, and the thing is just slow and bulky and seems to eat way more cycles than it should. Saying nothing about its viability from a programmer's perspective, even as an end user I don't want it on my machine, and in fact have explicitly uninstalled it to prevent these sort of issues. The .NET framework, on the other hand, seems to stay out of my way. It has an unfair advantage of course, in that it comes built into Windows and gets updates quietly and painlessly through Windows Update, but as an end user I only care about results.
Game Development: You can do game development in any language and on any platform. People have proven that countless times over the years. How easy that is going to be, however, is a completely different question. C# seems to have growing support for game development, from engines like Unity to platforms like XNA or the new Playstation Vita SDK. I've yet to see similar excitement over anything from the Java end, apart from frameworks for mobile Android development. In the end, it's the community of users that is going to most affect your development experience, since there will be a greater amount of information to draw from to help you out. From that perspective, it's hard to beat the XNA community, which has tons of people using it, resulting in forum posts, books, and tons of middleware libraries scattered about. If you're looking for a personal perspective, I maintain an open source C# game development library called SlimDX. I happen to think it's pretty nifty.
In the Future: You won't go wrong from a career perspective learning either language. Companies are currently using both of them, which means even 5 to 10 years down the road there will be a demand for them, if only to help maintain current products. With that said, I'd place my money on Microsoft over Oracle, who recently acquired Java from their purchase of Sun and seem bent on driving it into the ground by suing people and pissing off prominent open source projects. On the other hand, Microsoft gives support to the Mono team on various bits of the project, and have legally bound themselves not to use any of their patents against them by putting them under their Community Promise program.
So that's the story, in a nutshell. I personally work at a AAA game studio, and I've done C# work on tools there. I'm sure there exist similar positions in other companies that use Java instead, though I don't know anyone who does and have yet to see positions advertised as such. I think it's clear which one I favor, though as I've tried to emphasize, you can't go wrong learning either. The more knowledge you acquire, the more versatile developer you will be, and nobody is ever going to deride you for that.