However, what doesn't seem normal and expected is the arrogance and friction that this person brings.
They argue incessantly, and (it seems) not always in good faith. Petty arguments, filled with "ha-ha gotchas" that are more about flexing what they think they know versus actually trying to find meaningful solutions. They over-optimize, spending endless time hurting readability and breaking abstractions to optimize code that will likely never need it. Their explanation? Matter-of-factly: "It's faster." Then they leave their esoteric over-optimized code undocumented for the next person who "should be able to just figure it out."
They frequently try to bond with people by shitting on popular projects, tools, or methods of doing things, without attempting to understand any of the justifications for why those methods made sense at the time, with the information that was available. It's all "trash" that elicits groans of disapproval and smirking and eye-rolling if it's not the latest, hottest shit. They talk with a shitty, pointed tone in their voice and make no effort to conceal it.
They've been the last hold-out on the team, when the rest of the team has aligned around a solution, because what was aligned around wasn't "their preference." They frequently have to be "overruled" because of their refusal to compromise, and make it loudly clear that they are being overruled when it happens.
I know that some of these concerns have been brought to this person's manager, but my sense of the outcome is that the manager is in a precarious position of trying to keep the team together and everyone getting along, so that forward progress is made. I'm honestly not sure what I expect from the manager. If I had it my way, this person would be let go. But they aren't, for whatever reason.
I need a strategy for communicating with this person. How do I persuade them to listen to other points of view? How do I prevent debates from devolving into petty gridlocks? I used to think that anyone could be reasoned with and compromise found, so long as everyone is acting in good faith, but this person challenges that belief. They have one way of seeing the world, and if something doesn't align with that, they don't budge. How do I minimize the damage?
You should continue to bring your concerns to your manager. Hopefully your manager will listen, or you will learn something you didn't consider previously.
Without external pressure this other developer is unlikely to change. Unless you already share a deep trusting relationship with this person, you are unlikely to be able to affect change on your own.
Are you the only one having issues with them? Maybe you could bring it to their attention quietly, and if they're writing bad code it should never pass review.