Now, this might seems like a non-answer at first, but bear with me.
The reason boss fights "need" more than 1 monster in 5E is due to the action economy. Legendary actions are supposed to offset this, but sometimes you hit level 20 and not even a Tarrasque can slow down your band of murder hobos.
Paragon Creatures are your solution. That web page has a lot of info on it, so I'll try to summarize it here.
First you choose an amount of creatures to Frankenstein into your Paragon.
Now you set up the HP Pools. Your Paragon has an amount of HP equal to the sum of all the creatures that make it up. Keep track of total HP, but also each Pool. Once a Pool hits 0 HP it is gone and no excess damage flows over to the next pool. Healing, likewise, can only apply 1 one Pool at a time, and once a Pool is depleted it can't be remade with healing (It counts as if you had killed a creature).
After each Pool is lost the amount of Paragon Actions the creature can take is modified, and if you're so inclined, it's abilities may be modified too.
Paragon Actions are what make these creatures special. A Paragon Action is similar to a legendary action but instead of specific things costing an amount of legendary actions the monster gets an entire turn. Full move, full action, everything. These Paragon Actions are full turns that the creature gets and they are inserted into the initiative after any PC (You pick, but the creature can't take 2 turns in a row). There are 2 ways to approach how the creature gets and uses these actions.
- Paragon Enrage: As the creature loses HP Pools it gains an additional Paragon Action
- Paragon Exhaustion: As the creature loses HP Pools it loses a Paragon Action
What you're essentially doing here is making a World of Warcraft boss fight out of D&D monsters. I've used this many times to my players delight, as it feels much better (to them) to fight 1 big bad guy than a medium bad guy and his 4 wimpy buddies, or 2 moderately bad guys at the same time.
If you want more characters in the fight you could have a Paragon Bad Guy and his Paragon Minion (Which you can read about in the first version of the Paragon Monster blog)
This type of creature might be more susceptible to crowd control (hold person, etc) because they work as normal, but they do get additional tries per turn to break out of it. This is potentially abuse-able so you could give them legendary resistance, or when a Pool runs out the creature shrugs off all current effects on it.
To determine which HP Pool is hit first you choose an order for the HP Pools to be damaged in. Only one HP Pool can be "active" at once though, so the DM shouldn't have all pools get damaged down to 1 HP then switch to a different one, they must be fully depleted.