The most egregious for me is "Armour Class". I've been able to forgive many, many sins over five iterations of D&D rules, but I've never really reached a point where I'm at peace with the idea.
I know there is the argument that "hit points do not equal injury", which takes some of the burden off of Armour Class, and this definitely works for me when I am forced to run vanilla, by-the-book d20 systems. But in using this method, I've discovered another, deeper issue that I have with Armour Class:
It's boring.
OK, there is that. It is a simple, binary, pass/fail in which the player is a passive participant.
5e combat (particularly the "I attack" hit/damage hp ablation aspect) /is/ designed to be fast, and once you're designing a system to be fast, you've prettymuch accepted that it's not really meant to be exciting or interesting in its own right, that, rather, it's an impediment to the fun offered by other aspects of the game, that you need to minimize, so those fun aspects can emerge.
Making it fun could mean adding detail & depth and letting it take longer, or it could mean changing the stakes or even just making it less passive.
For those not familiar, combat in Storyteller works like this:
Attacking Player rolls Attack -> Defending Player rolls Dodge/Block -> Attacking Player rolls Damage -> Defending Player rolls Soak.
It seems a bit long-winded, and it frequently was.
Oh, quite familiar, thanks.

It was, oddly, actually a more complex way of resolving the same things attacks & dmg/hps do - dramatic combat with a hero that has at least some 'plot armor.' (Or literal armor.)
It was workable in a dice pool system (borked as it was at the time) but, doesn't work well in d20 because contested checks are super-swingy.
But what resulted was combat which was much higher-stakes (it was completely possible to utterly destroy an opponent in one turn, or to get utterly destroyed yourself)
Which has it's downsides, too. In Storyteller, there wasn't an expectation of frequent combat, and certain character types - Celerity Vampires, high-Rage Werewolves, Time Mages - could so utterly dominate in combat that combat scenes could be pretty one-sided and not involve the whole troupe.
Conversely, in D&D, combats are expected, 6-8 per day, 13-20 per level, over 20 levels. If each of them is even a /little/ swingy, a little higher-stakes, PCs would die so consistently you couldn't finish a campaign (at least, not with the PCs that started it), even with Raise Dead on the table.
So while AC is expressed as a number, that number is just a Skill Roll with a default "Take 10" result (eg. AC25 is just just a +15 skill roll with a default 10 roll). Thus I could have the defending player roll their d20, rather than just using the default 10 result.
This unpicks the "passive defender" part of the d20 problem.
Like I said, though, gets too swingy. What you could do, though, is a players-always-roll variant. That is, when the PCs attack or casts a spells, they roll to hit or overcome the targets FORT/REF/WILL/whatever, when the PCs are attacked, they roll to save, block/parry/soak, or whatever works for the type of attack and drama of the scene.
There is still the issue of governing "hit" and "wound" on the same roll, but that's something which I'm willing to tinker with a bit more
Abstract hit points do that OK, and they do it in a predictable enough way that players can take their characters through hundreds of combats with a real chance of retiring them still alive, or at least, not having been Raised too many times. The simple idea of 4e Bloodied - when reduced to half hps you've finally taken a physical/visible wound - kept in 5e as a wound-narration side-bar, is workable enough. There's all sorts of flourishes you could add: comparing damage to total or remaining hps to determine the severity of the wound, making armor-modified CON saves to differentiate between hits and pseudo-hits, etc...