That's why I'm think binding XP to main story progress only would be great. Balancing is a lot easier of players are at predictable levels with no variance because they have all been progressing the main questline.
But players in BG3 don't have to actually complete main questlines, right? A player can land on the beach, explore the tomb, skip the grove, fight through the blighted village, and then head to any of the routes away from this first map area. This skips practically everything that can be considered a Main Quest: entering the Grove, encountering Nettie, choosing a tieflings vs goblins side, rescuing Halsin, talking to the Hag, and encountering the Githyanki, and so wouldn't level up under your system.
If, in addition to the above, the player also fights through the swamp (not entering Ethel's house), the gnolls + tollhouse, and the underdark, then they really should have gotten enough exp to level up even though they've still made ~no/little Main Story Progress.
I'd argue that a mix of exp from defeated enemies, quests, exploration, and dialogues is best for a Larian-style game. It still allows the freedom to explore wherever you want and to do/not do certain quests, while still being able to level up. It averages out the exp into many smaller chunks, which is it's own method of ensuring that most players are around the same level of exp.