Alternative Solution: The enemies don't matter
You said that
My goal is to make coming out of the dungeon a frantic race against time.
Therefore, it doesn't really matter how many skeletons you pitch against them, as long as it feels like a battle they can't win. This is a place where the numbers are irrelevant and it's more about creating a compelling narrative.
Side note, if you haven't yet read The Angry GM's How to Build F$&%ing Awesome Encounters! (warnings for inappropriate language) you may find it an excellent thought exercise given that you say your group leans towards a roleplay-heavy style. I'm going to be using his guide for inspiration here.
The Mission
So you want to build an encounter. Before anything else, you're going to need a hook. Luckily yours is pretty easy to isolate; they've won their big baddie fight, and they now need to leave. Preferably alive.
The Mission: Get out.
But there's a complication; the longer they stay down there, the more skeletons come alive and try to murder them. It's tempting to say that our mission is then
Get out without being killed by skeletons.
But there's an interesting point to be made here; the danger they're facing isn't actually skeletons, it's time. It doesn't matter how many skeletons they do or don't fight, their chances of survival get slimmer the longer they stay in the crypts.
So let's revise our mission now that we know the danger:
The Mission: Get out quickly.
We also have the setting; a series of winding crypts that they may or may not remember how to get out of. They're going from Point A (the boss' chambers) to Point B (the exit) and need to do so as quickly and efficiently as possible.
To me, this no longer sounds like a fight encounter, because fighting isn't the mission here. Instead, I would treat this like a chase, which is going to play out very differently and likely feel a lot more urgent.
Planning a Chase
The Angry GM does a much better job of explaining this in detail than I ever could, but here's my quick take on it. I've actually run two different "chase" scenes via this method and my players loved it. They were the kind of sessions they were still talking about next week, which is always a good sign!
1. Choose Decision Points
You know your players are going from Point A to Point B. Decide how many decision points you want between those two places. Each decision point is a place where your players can choose to do something that may help or hinder their escape.
Maybe there's a closed door they need to open, a pit they need to cross, a trap they need to disable, and a dark place where they can't see. You've now made a 4-decision-point trip from A to B. At each of these hurdles your players will need to make snap decisions as a team to get everyone through.
If you were to "map" this out it might look like
Boss - door - pit - trap - dark - Exit
Each of these points should have its own "skill challenge" applied to it. I'll explain what I mean by that later.
2. Add your baddies
There has to be a reason why they can't just take their time through your decisions, otherwise the chase loses all meaning. Luckily, you already have this reason; skeletons!
For the sake of this encounter, it seems logical that a party moving at average speed can cover the same amount of distance as an army of skeletons can. Therefore, both groups will progress at exactly the same speed, neither gaining nor losing ground, as long as nothing is done to accelerate or impede this progress.
This gives us a unit of time to work with; in one "round" the skeletons can move one "space".
3. Plan your skill challenges
You now know that the skeletons will progress one space per round. Now you can decide how many rounds your players should need per decision point, where you can allow them to gain or lose spaces, and how hot on their heels you want your skeletons to be.
This sounds like a lot to plan, so let me show you just one single decision point as an example:
At the start, your "map" looks like this:
hallway || hallway || hallway || locked door || hallway
Aka, there are three spaces of hallway before your locked door that your party needs to get around. Let's say the party has gotten to the door, and they can hear an encroaching skeleton hoard behind them.
(skeletons) hallway || hallway || hallway || (party) locked door || hallway
For each thing they try to get the door open, the skeletons will advance a space. If the skeletons get to the same space as the party is occupying, the party will die. (Or, if you don't want it to be a pass/fail mission, maybe they just need to fight a fairly hard encounter to win back ground and keep moving.)
Your rogue tries to pick it with lockpicks. He fails his skill check.
hallway || (skeletons) hallway || hallway || (party) locked door || hallway
Your wizard tries to burn it with magic. He fails his skill check.
hallway || hallway || (skeletons) hallway || (party) locked door || hallway
Your fighter tries to bash it down. She succeeds her skill check!
hallway || hallway || (skeletons) hallway || open door || (party) hallway
The party bursts forward into the hallway as the horrible clicking noises of the skeletons grows louder behind them...
Trust me, if you narrate that well and make sure no one dawdles while thinking for too long you'll have your players on the edge of their seats!
Ideally your skill challenges will offer more varied solutions than just "defeat door", but this is something to tailor to your party. And speaking of...
4. Offer "Shortcuts"
Decision making isn't fun if there's only one choice. Split your crypt up into multiple paths, let your members make perception, investigation, survival and other applicable checks to find shortcuts or workarounds for some members but not others.
Also, allow your party to impede the skeleton's progress, maybe with an acid spill on the floor or by caving in a bit of the ceiling. Each time they come up with something clever, don't have the skeletons gain on them that round.
As an example, in one chase I ran there was a narrow alley that our ranger could fit in but our fighter couldn't - the ranger ran ahead and kept sending Message back to the fighter with tips about what was coming. I gave the fighter advantage on her rolls since she had been informed what was coming up. Stuff like this gives each member a chance to shine for their own skill set.
5. Pulling it all together
Once you've mapped out all your decision points and skill challenges you can make yourself a little cheat-map with each space and what will happen in it. Whip up a little token for your party and another for the skeletons and keep track of when the party does something clever and gains a space, or fails a challenge and the skeletons get closer. This doesn't have to be something your players see, just use it to keep your narrative accurate.
Then it's all up to your narration and how quickly your players can think on their feet! If they play their cards right and are clever about it, they'll never actually have to fight a skeleton and you will have built an amazing encounter!
I can't believe I found this but I actually have a picture of one of the encounters I built.
The left sheet has my "spaces" mapped out so I can track how far ahead/behind my players each are.
The right sheet has the decision points listed (in this case right-to-left) with notes to me about where shortcuts are and what skill challenges are needed.
My players never saw any of this, it was just info so I knew what was happening and could narrate accordingly.