[long]
You know, I've never actually managed to DM a game for longer than about five minutes so I probably shouldn't be giving advice, but I have been accused of being a good writer and I feel like the principles are the same, so I'm gonna go ahead and give you my thoughts anyway.
First of all, as you seem to acknowledge, everything basically seems to have turned out fine. But since you feel that it wasn't what it should have been, it's still worth reflecting on it.
So, my impression is that you're suffering a kind of mismatch between the roles of writer and manager. You wrote out your idea of what you wanted to happen as if it were a story, and were then unable to manage the execution of that story in the game context. Both of those are independently problems. Your problem starts with the first part - your plan for what was supposed to happen was too much of a story and not enough of a game, so your players ended up completely breaking it. You can't expect to write a cutscene in a tabletop game unless you already have buy-in from your players to treat it as a cutscene, basically. If your ideas of how a scene is going to go are too rigid, your players are going to ruin them, trust me on this. It would have done you a lot of good to have had a few alternate plans in mind for what might happen in different scenarios, since it seems like you're not a fan of improvising; and regardless, even for a single plan, you really need to think very thoroughly about what your players might do at each moment. It's imperative to have a good understanding of what they're like.
Second, there's the management part. Remember that you're in charge of the story. There's definitely something to be said for giving the players flexibility, but at the end of the day, if you really want the bad guy to get away for a later return,
he gets away. Your players never need to know exactly how much HP something has left or what AC it has, anyway, since that's just bad writing in the first place - they just need to know whether they're doing well (or will die embarrassed). So with that in mind, if you need the guy to get away but someone shoots off his last HP, you, uh, lie. Give the players the satisfaction of knowing they definitely hurt the guy and ruined his day, but if you need him to get away, he gets away. Of course, it's better if you don't need him to get away in the first place, or if you decide you do, to have some way of guaranteeing it (like having an ally with magic waiting in the wings with a prepared teleport or similar), but if you've messed up the storytelling part, you can always salvage it by fiat. And the fact that this scenario of yours ended up working out okay is a good reason to keep in mind that you don't usually need to do that too much, but it should still be in your arsenal. The rules aren't God, and a boss fight where all you do is weaken the boss until he gives up is not only a proud and accepted tradition, it's also a good way to make it even better when you finally get to murder the guy later.
A lot of people have an insecurity about that management aspect because they feel like it's cheating and they have to follow the rules exactly, but this is stupid. The point of being a DM is not to be a weird calculator made of meat, it is to produce a fun game experience. The entire benefit of having a human in that role and not just playing that D&D computer game I can't remember the name of is that the human can make decisions. Don't just dick your players around for no reason unless they're into that, but you always have the right to make a decision that you expect will improve the game.
Relatedly, this is also why the swinginess of combat is all up to you. You always have the option to make an enemy stronger if the fight seems to be ending too anticlimactically. You always have the option to let a character slide on a death save no matter what the dice say (you ARE rolling those yourself, right?). You also always have the option to make a character make a con save to not be knocked unconscious after taking a blow to the head. Knowing when to use these options and when to let the players suffer the consequences of their own choices is part of the skill set.
But yes, you should make an effort to actually remember to involve that medic. Put her in the initiative list, it'll help. (You DO have an initiative list visible to everyone at all times, right?) Then again, that said, since your players think she's a hag, you can just decide that she actually is one and is intentionally slow-rolling the healing for her own amusement as an evil man-eating fey. Never be afraid to use your players' ideas. On the other hand, never be afraid to subvert your players' ideas either, so you could make her some OTHER horrible thing entirely. But even if she is, she must have some reason to be doing this, so she'll have to step things up at some point so the players don't just fire her.
And practice your banter ahead of time. You can even write a list of quips for particular times or particular triggering events and read off it. Then you can let your players read the quips they didn't manage to proc afterward so they can imagine all the ways the battle could've gone.
ETA: By the way, speaking of initiative order, which I was a little bit ago, since it seems like your players are pretty easy-going and probably aren't rigid rules lawyers, you may want to try introducing a new rule that certain battle events can knock people up or down an initiative slot at your discretion. It gives you another lever of control while making the flow of battle more organic and interesting, and it lets you give players a nice reward for doing something clever to gain tempo.