I had to think pretty hard about how to salvage anything from this disaster, but I think I’ve found something that works for me–swap not only the order of Undercity and Teldrassil, but the way in which they happen.
A Second Front
Sylvanas is physically either in Orgrimmar or Zandalar, and is focused on the Zandalar/Kul Tiras war. The Zandalari have recently won a major victory, so the Alliance decide they need to cut them off from Horde support by tying up the Horde army on another front–Lordaeron. Anduin agrees because he hopes it will end the war quickly and thus save lives. (Fanservice: We get a fully-rendered cinematic of the discussion where he is convinced to go along with the plan, and it ends with a long shot of him sitting alone on his throne, brow furrowed, chin propped on hand, wondering whether he has done the right thing but hoping for the best.)
Lordaeron
The Battle for Lordaeron is a pure military success–the Alliance take some losses, but not enough that anyone would call it pyrrhic. This is largely because not enough Horde forces can get there in time to defend it effectively, just whoever Sylvanas can bring with her from Zandalar, so the Forsaken are pretty much on their own against the bulk of the Alliance forces (who have gas masks). Sylvanas can still blight or blow up the city itself on her way out, to keep it so both destroyed capitals are uninhabitable, but the rest of the province is officially in Alliance hands. Genn Greymane is left in command of the Alliance forces, and those Forsaken who couldn’t escape to Kalimdor retreat to Silverpine, where they later receive reinforcements via portals. A battlefront develops, either in Tirisfal Glades or in Silverpine, as the Forsaken try to push the Alliance out of Tirisfal and the Alliance try to press on to reclaim Gilneas.
Teldrassil
Meanwhile, Sylvanas, furious at being caught unawares at Lordaeron, marches on the Night Elves. Why? Because two can play at the game of split fronts, Kalimdor is where she has the majority of her forces, and the Night Elves are the nearest target. She figures that if she can capture Teldrassil, she can open negotiations with the Alliance and get them to withdraw from Lordaeron in exchange for her withdrawal from Teldrassil. Her forces are bolstered by angry Forsaken refugees who want revenge for losing their city. The Night Elves fight guerilla-style and make them pay for every foot of ground (as mentioned in Elegy), but the Horde still advance slowly but surely, until they’re standing on the coast of Darkshore … only to see Teldrassil go up in flames. It’s already been evacuated (I like Anyaceltica’s idea of sending the population to the Exodar), and the last defenders put it to the torch just before leaving.
Night Elf Focus (optional, but I’m designing this for me…)
This is shown as a painful decision for them, but they ultimately choose to sacrifice their home and deny Sylvanas her prize rather than give her an edge over the Alliance. It represents a moment where the proud and independent Night Elves take another step in becoming truly bonded to their allies, and there’s a scene where the other leaders acknowledge that they know how difficult this must have been. Maybe Genn takes a moment off from the warfront to say, “You gave my people a home when we had none. If I succeed in regaining Gilneas, I swear your people will always have a home with me.” For bonus points, some druids could save an acorn or cutting of Teldrassil in hopes for regrowing it later, when the war is over.
And now the war is officially on.