Fixing Raise Dead has a lot of factors that you must consider. One of the big things is that not only do you have to make the spell balanced BUT you also need to make sure that the Necro heroes are balanced against each other ... IMHO this limits your reasonable options.
Because you need to balance the spell and the heroes it [IMHO] makes a lot of sense to do the following:
1. Allow all Necromancers to cast Raise Dead from day 1. This makes sure that Vlaad / Nadir / etc. don't have a HUGE starting advantage over other Necros.
2. Keep the spell at level 2 [in order to make 1 above make sense]
3. Change the mana cost to 10. This will prevent early spamming by making sure you can cast it only once or twice early.
4. Because this is a L2 spell it shouldn't be "too good". It needs to have some downside to balance it vs. spells at its level. [Mana cost isn't enough] I would propose that any creatures that are raised come back with only 1 HP. The only thing to decide is when more damage is applied to the stack is it applied to the raised creatures FIRST, LAST, or somewhere in the middle.
Applying new damage to the raised creatures FIRST [IMHO] would be too much of a penalty.
I think the right thing to do would be to do some playtesting to see if it's best to apply damage to raised creatures LAST OR [a modification to what Nival did] is to average HPs of the raised creatures [each with 1] against the current HP of the living stack.
Ex: Lets say we have 100 skeletons at 5 HP each. Now lets says that they take 250 HPs of damage. There are just 50 creatures left with a total of 250 HPs. Now lets say a Necro has the power to raise "500 HPs" of creatures. After they cast Raise Dead the stack will have 100 creatures. 50 creatures have 5 HPs ... 50 creatures have 1 HP. The average HPs of the stack would then be 3HP. Now lets says that the stack takes another 150HP of damage. That kills 50 creatures. You raise the creatures back and now you have 100 creatures again ... 50 creatures have 3 HPs and 50 creatures have 1 HP. The average HPs is 2 per creature ..... Repeat as necessary
Ex #2: Lets say that you have 1000 skeletons at 5 HP each. Now lets say that they take the same damage as above [250 HP]. Now you raise them all back. You have 950 creatures with 5 HPs and 50 creatures with 1 HPs. This means each creatures has average HPs of 4.8 which is much kinder than the 4 HP each of the Nival solution.
If it turns out that having raised creatures come back with only 1 HP is too few then you could base the HPs on the Summonning skill of the caster:
No skill == raised creatures have 1 HP
Basic skill == 1 HP + 1/9 of original HPs [round fractions down]
Adv skill == 1 HP + 2/9 of original HPs [round fractions down]
Exp skill == 1 HP + 3/9 of original HPs [round fractions down]