As BfA comes to a close i think many can agree that one of the more egregious part of the expansion was the writing. With characters all over the place, motivations seemingly switching on a dime, and of course the sudden left turn into N'zoth after 8.2.5.
In times like these i find it fun to rewrite the story to flow better. However i find that simply rewriting it wholesale veers to far into pure fan fiction, and easily ends up with wish fulfillment. So i find it far more gratifying, and perhaps more importantly, fun, to rewrite and reorganize the story in a such a way that the story ends mostly the same way, but flows better.
To do this i will presuppose that Legion ends exactly the same way it did, and Shadowlands begins the way we have been shown so far.
Worldbuilding will also have to stay as close as possible to the source material. So in this case Teldrassil still has to burn down, and the expansion still has to end with the Night Elves reclaiming it. Undercity is still no longer in Horde hands, and probably won't be. The expansion will of course also end with Sylvanas being ousted, Saurfang being dead and N'zoth being presumed defeated.
Pre-patch:
Functions mostly the same, however, the battle for undercity is no longer what begins the expansion. The time spent on that story is instead given to make the story more faithful to Elegy/A Good War. Saurfang especially will play a bigger role, slowly devolving into his older, warmonger self, before being shocked back to reality by Teldrassil burning.
The scenario that Undercity would have taken is instead filled with the Alliance's last defence near the shores of Teldrassil, ending with the similar scenario of having to attempt saving the citizens of Darnassus.
8.0:
This patch plays mostly the same, Both the Alliance and Horde attempt to get aid from the Zandalari and Kul Tirans respectively, though instead of the Horde having the scenario in Stormwind they are instead roped into it when an emergency metting of the Troll tribes is assembled. The champion still saves Talanji and the story moves the same on that front.
On the Alliance side the story is mostly different in that instead of focusing on an assault on Dazar'alor, they are instead aiming for Undercity, who because of the changes to the pre-patch is still in Horde hands. Tensions escalate as Sylvanas orders seemingly more and more random acts of violence, all conveniently out of eyesight of the Horde champion. (Each Alliance zone would have it's own dedicated Horde attack subplot)
The Alliance additionally gets a 5 quest long questline giving an actual reason for why we should care about going to Uldir.
8.1:
Darkshore is not retaken, nor is Dazar'alor the raid. Instead the entire patch builds up to the Alliance attack on Undercity, which as a raid is functionally identical to Dazar'alor. With the exception of Saurfang taking hte place of Rastakhan as the final Alliance boss. Much of the story once the Alliance takes the Undercity is the same. With the exception that Sylvanas did not manage to bomb old Lordaeron, the sewers of undercity however is still uninhabitable, though now more clearly being framed as an Alliance victory.
The warfront would instead be Barrens, being framed as a diversionary tactic to allow the attack on Undercity to go unhindered.
These changes would make the story more believable as the Alliance vengeance.
8.2:
Tensions start to rise among the Horde. With Saurfang gone Sylvanas is now being more openly brutal, ordering a seemingly endless series of high-risk maneuvers under the guise of desperation. The Alliance continues their assault, though the effectiveness of their attacks is stymied by the brutality of the Horde soldiers and the now more blatant use of risen corpses as part of the Horde army.
This story takes place alongside the Nazjatar story, which plays out in a similar fashion. Though this time with actual well-known naga as bosses. As a minor difference, at the end of the Azshara boss fight there is some question on whether N'zoth is even released at all, with his release seemingly being a dud. Though Azshara escapes all the same.
8.2.5:
The Horde is now properly forming a rebellion against Sylvanas, initially as a protest against her brutal tactics. Sylvanas however is actually shown as a competent strategist here, aquescing to her detractors commands and entering peace talks with the Alliance with the intent to surrender. The Alliance accepts partially because of the losses, and partially to ensure fair punishment for the Horde in the form of reparations and land.
The treaty is seemingly signed without problems, but trust between the Horde and Alliance is clearly still frosty, with Anduin even declaring Baine and his followers mindless savages, with Baine unable to protest. Saurfang is at this point released back to the Horde as part of the peace treaty.
Saurfang has a conversation with some of the Horde leaders where he wonders aloud if the Horde were ever more than bloodthirsty conquerors.
8.3:
The Horde is seemingly at peace, when during a meeting Sylvanas declares that she never intended to honor the peace treaty, and that she has a final plan, involving raiding the thousands of corpses left in Teldrassil to wash over the Alliance. She attempts to sweeten the deal by mentioning that the Alliance will never gain trust them, and that per the peace treaty they are subservient ot the Alliance in all but name, as the deal involved taking all arable land not in the immediate vicinity of the Horde cities.
Saurfang finally cracks, declaring Sylvanas to have tainted the last remnants of the Horde for her own gain. He declares Mak'gora in the streets of Orgrimmar. He seems to have the upper hand, but similar Sylvanas launches an attack that instantly kills him, declaring him weak and instantly ressurecting his corpse, giving a warning to the onlookers that they now have the choice between her route, or attempting to reason with the Alliance.
Baine decides to start a rebellion, intending ot stop Sylvanas. He considers sending an emmisary to Anduin, but decides to go himself.
The Alliance meanwhile is comfortably resting on their laurels. Having won the ultimate decisive victory over the Horde, Anduin makes an impassioned speech declaring the long war that once began when the orcs first stepped through the dark portal to be over, and that they will never again put faith in barbarians.
Ominous whispers however have started appearing in random places, with Anduin especially being shown to act erratically at times. Much of the Alliance story here concerns some of the Alliance leaders requesting a search for Azshara, and the possibility that N'zoth was in fact released. This will take the player to several different areas, but will eventually end with a quest where we remove the void corruption from Anduin.
Baine will at this point appear in Stormwind keep. He will be immediately arrested, and threatened with death. Baine attempts to explain Sylvanas' plan, and how she has started killing dissidents in preparation for the final attack on Teldrassil. Much of the Alliance leadership considers this the final straw, and strongly considers simply nuking Orgrimmar, removing the Horde as an institution forever, however after some compelling evidence they will go against that, and instead agree to join forces with the Horde rebellion to defeat Sylvanas before she can ressurect the dead.
The raid will be in Teldrassil, and a couple boss fights will be about fighting what seems to be N'zoth rising properly, he is defeated by Xal'atath, Magni considers it odd that he seemed to go down so easily, but since Sylvanas is still kicking there is no time to contemplate what actually happened to N'zoth.
Final boss is then fighting against some avatar of death summoned by Sylvanas. Possily even a ressurected Saurfang, using various necromantic abilities. Though in the end we prevail, Sylvanas retreats and Shadowlands can begin.
Now that i wrote all that i realized that there might be a tad too big a wall of text for the revised 8.3, but seeing as there is no in-game analogue ot draw from i hope it is okay.
Thoughts and criticisms welcome.