If the rules don't provide you the pacing you want, change the rules. Either of the game, or the encounter.
Your problem is that fights start out exciting and dynamic, and peter out to pedestrian.
There are games where this doesn't happen. In 13th age, there is an escalation die that steadily increases the stakes of combat (as its most passive effect, everyone gets a +X to all attacks on turn X of the combat). In Wushu, early parts of a scene involve clearing out the threats; only once the threats are suppressed can you narrate your awesome victory.
Both games have mechanics that push the "drama spike" to the end of combat.
D&D 5e, by default, has combat-as-attrition when there is more than one foe.
Threat is maximum when all the foes are standing. Once a few foes have been dropped, the threat plummets. If (in a simple model) the PCs kill foes at a constant rate per round, and the foes threaten in proportion to their numbers, then when half of the foes are dead you have already experienced 3/4 of the encounter's threat. But the encounter is only half over.
*
* *
* * *
* * * *
* * * *|*
* * * *|* *
* * * *|* * *
* * * *|* * * *
8 foes, 1 dead/round, each does *
damage per round. The |
is the half way point of the combat. You'll take 10 *
damage after the half way point, and took 30 *
damage before hand.
One approach is to work out roughly where that point is, and make a two-phase combat.
* |
* * *|
* * * *|*
* * * * *|* *
* * * * *|* * *
* * * * *|* * * *
* * * * *|* * * * *
here is a 10 round combat where reinforcements arrive at round 5. Left of the line is 28 threat, right is 15; 35% of the threat is after the half way point, instead of 25%.
Another approach is to make foes flee or break when half are defeated:
*
* *
* *|*
* *|* *
* *|* *
* *|* *
* *|* *
* *|* *
here, 15 total threat before the half way point, 11 after. 42% of the threat is after the half way point.
Note that the "total threat" of these cases is menos per unit monster, but as the DM you control how many monsters there are and how they behave.
In a typical situation, N monsters are (N+1)(N)/2 times more total threat than 1 monster.
If N monsters "break" at 50% and are no longer threatening (they flee, surrender, etc), they generate 3/4 of that (total) threat. But the encounter excitement curve is much flatter.
For each encounter, introduce an element to keep the encounter flatter.
In a "boss fight", use threat dice; at the start of turn 2, place a 1d4 on the table with a 1; everyone takes a -1 penalty to saving throws and gets a +1 bonus to attack rolls. Each round increase it by 1.
That (like in 13th age) causes the stakes to raise each round.
Against creatures with morale, increase their numbers by 25% and state that they will break and when 50% have dropped.
Against creatures without morale (undead hordes?), make waves or a monster-flow standard.
As a concrete example, instead of 8 zombies, have 4 zombies to start, but then a flow of additional zombies arriving (3 per round for 3 rounds might be enough to make the "omg we are screwed" moment move from round 1 to round 3).
Waves, morale and escalation dice (and, more generally, escalation mechanics) are all time tested ideas, and they all solve your problem.