That's why I much prefer the monster design of D&D 3.5/PF over 5e - monsters actually having interesting abilities instead of just being giant HP sacks is way more fun.
I like GURPS as my main system. It's point based, and higher point values tend to give more breadth rather than depth.
For example, a 500 point character can possibly be killed by a 25 point goblin.
Starting point values are usually 100 to 150, or 250 for more epic games. 500 is usually the realm of supers. As in Superheroes... Those games are a bit rare. Superheroes are just too reactionary. As in, you mostly wait around for villians to start something, then catch them, then wait around again... Now, a supervillians campaign, those are fun.
If your encounters are one monster that is effectively a punching bag for your players, no offense, but you're doing it wrong. Every encounter should feature at least as many hostile creatures as it does players, even if they're piddly and don't offer much more than a turn or two of distraction while the big bad gets their good attacks off. You should almost never be running high-CR creatures alone, even if they have legendary actions.
Additionally, vary your environments. Put down some patches of difficult terrain to slow down the melee-ers. Provide some cover for PCs and hostile creatures. The +2/+5 to AC and dex saves makes a noticable difference against casters, and lots of spells rely on being able to see the target. You might also change the nature of the encounter - maybe the PCs need to divert enemies away from a location, or prevent them from escaping.
As for encounters dragging on forever, I find that it's usually a result of one or two players either not knowing their sheets, or spending a great deal of time weighing options. Identify those players, and talk with them after the session to see if there's a way to help streamline things.