I thought MIraak was a harder fight than Karstaag or Harkon.
The Harkon fight was long, but once I had a rhythm it wasn't all that dangerous, i.e. it wasn't that hard to stay alive, it was just a matter of damaging him faster than he could heal. Also, even if Serana was a healing pool, she would also draw aggression from both Harkon and the gargoyles,
Miraak moved fast, had 2 dragons that increased the danger and confusion, and was literally unkillable in our first fight because I killed both of the dragons before I went after him, which glitched the battle.

Miraak himself wasn't that tough after the dragons went down, but the overall battle was.
Karstaag was dangerous, but could be taken down relatively fast with fire spells. I think he'd be a tough fight for a pure warrior. With a spellsword I softened him up with a few dual-cast incinerates, chugged a potion of resist frost, then quickly battered him the rest of the way down (from behind) with the ebony sword of the vampire. I had Serana with me, so it might have been a lot worse without a follower.