Only one MMO has ever put in something similar to the solution I've been suggesting since about 2006 for this issue - which is an issue seen in almost every MMO, even GW2 which doesn't have tanks...
Put all rewards at the end, upon "mission completion" - even though you have to earn them throughout.
So you loot all those chests, get all that XP, get all that Gil... and it doesn't get handed to your character until you have that 'exit' thing at the end of the dungeon...
City of Heroes had something similar... Mission Completion. There was no completion until there was a completion... and all you could get there was very small XP and trivial recipe items - mostly items good to give to updating your guild base, and not yourself... until 'Completion' popped up on your screen.
Completion there though also meant 100% full clear. Not sure if modern MMOs would go for that.
BUT... its pretty easy to say "nothing from a chest, and none of the XP counts, for ANYONE, until the dungeon finish pops."
- With an added caveat: if a vote-kick system is added, all loot earned before the kick happens is lost. Either A: everyone loses everything they earned (what I favor, because it makes you only kick when you MUST kick), or B: the loot the kicked person won goes to no-one - not even them (which ends up being griefer-friendly).
(City of Heroes didn't need a solution for this, it had no kick function, its community never got bad to begin with because you could see everyone's global name, and they allowed people to name and shame on their forums for the first several years... before they sold the game to another company... so reputations were taken seriously: even if you server transferred, people only had to look up your global name and see what rep you'd left behind on your old server.)
******************
ALT SOLUTION:
1. Leaving a dungeon incurs a 2-hour wait penalty, minus 15 minutes per boss that was cleared in the dungeon you left. But only if the dungeon had been started (at least one combat was entered into).
2. A group missing a member goes above new groups in the wait queue, waiting in a queue of partial groups. And people get the option to switch their gearsets and re-pick roles (as that could speed things up).
3. Probably too complex to code: anytime multiple partial groups waiting in queue have killed the same bosses, they will be given the option to merge, and with it, the option for each member to re-pick their role / change gearset - if so doing can build a new full group.
(so lets say I came to dungeon X as heals, and we lost our tank, I would get the option to switch to tank, and we'd get the option to merge with another group that had lost a DPS and its tank).