I have a hard time believing this language is context-free. Consider a finite automaton which accepts this language. It would presumable need to store the first part on the stack, and then verify that the second part doesn't match. But how it it supposed to do that - it can only read the stack from top to bottom, not the other way round. And with the stack being the only means of unbounded memory, I don't think that reversing the stack is an option either.
This, of course, is more hand-wavering than a proof. But it might serve as motivation to continue to try to pump this until it blows up, leaving nothing but contradictions ;-)