I’ve stayed clear of spoilers so far, so my theory is probably not entirely up to date.
But I suspect the ending will be structured similarly to Legion. There’ll be a raid and a cinematic that’ll foreshadow the events of the next expansion.
So those are basically the two things to guess: The final raid and the cinematic for defeating the final boss.
I am going to say that the final raid is themed around the expansion title. Battle for Azeroth, because that’s how all final raids seem to go down when Blizzard’s masterplan works out as intended.
So it’ll be about the World Soul of Azeroth. We have to heal her wound after all, right?
I suspect that little Titan chamber in Silithus where the expansion started will be the raid entrance. And the raid itself will basically be the inner core of Azeroth, going all the way down to where the tip of Sargeras’ sword struck the World Soul of Azeroth.
And there’s of course an urgency to get to the World Soul quickly, because N’zoth is also trying to reach it in order to corrupt it, because that’s what Old Gods do.
So as we work our way down, deeper and deeper, we’ll fight various Old God minions and lieutenants.
As well as the other faction! Because that’s the other plot-line. N’zoth is the bad guy, but that doesn’t mean Anduin trusts Sylvannas and the Horde being near the World Soul. And likewise, Sylvannas doesn’t want Anduin and the Alliance near the World Soul, because she has a secret plan to secure its power for herself.
So the second-last encounter will be N’zoth, stopping him in the World Soul Chamber – but it’s too late, he has already corrupted the World Soul with his touch.
None the less, we kill the squid guy, because loot is loot.
And then the final encounter will be the Alliance fighting against Sylvannas and Nathanos. In the end Nathanos will sacrifice himself in order for Sylvannas to make her escape.
And from the Horde perspective you’ll fight against Anduin and Genn where Genn will sacrifice himself for Anduin.
On the story side, the players will have to deplete their Heart of Azeroth in order to help purify the World Soul – similar to the process of retiring our Artifact Weapons.
The Horde and the Alliance will continue their war. Sylvannas will have fled and abandoned the Horde and her role as Warchief and leader of the Forsaken. She’s on her own now.
The remaining Horde leaders won’t be able to negotiate peace with the Alliance, which sees itself hell-bent on vengeance and retribution, so the Horde will have to defend itself against the Alliance’s onslaught in the next expansion!
The final cinematic will show…I’ve no clue. 
There are so many possibilities in regards to where the story could go for the next expansion.
I am guessing that Blizzard will use Sylvannas in a similar manner as Gul’dan. She’ll be the one who sets in motion the events of the next expansion. I just don’t know what events those might be. It’s either something with the Shadowlands or something with the Void Lords. But I’m clueless to be honest. Even so far as imagining a future continent…zones…I’ve no idea. 
But that’s my guess! I feel fairly certain about the final raid. Imagine the Worldstone Chamber from Diablo II: Lord of Destruction. Just with N’zoth instead of Baal, and the World Soul of Azeroth instead of the Worldstone. But otherwise much the same kind of narrative, I think. Plus some faction war thrown in for good measure! 