I've posted this in a separate thread before, but my original thread seems to have vanished, so I'm reposting it. (Mostly so I can find it again!)
A Tagging System
When you enter combat (ideally just PvP, but if it can't be distinguished, both PvE and PvP), a "tag" is placed on your save, which contains some information on your current game mode.
When you leave combat, the tag is removed. You'd be none the wiser.
If you illegally combat log, or have a CTD, server error, etc, while in combat, the tag would not be removed.
This "tag" is then read when loading the game, and using the information it stored, will only allow you to re-enter your previous mode for a limited time(including exact private group). Say 30* minutes from rejoining the game.
The timer is based on game time, not real time, and the tag will not be removed until the timer is up. So logging in, then immediately logging out will not remove the tag. Nor will sitting at the main menu.
I particularly like this idea, because if you're just going about your business and suffer a server failure or CTD while in combat, you simply reload the game and continue as normal, in your previous mode, which we all do anyway.
But if you're intentionally combat logging in PvP, your only options are to rejoin the same mode, where your opponent may be waiting (in PvP anyway), or don't return to the game.
No one is ever barred entirely from the game, and accidental disconnects are not punished, and non combat disconnects are not even registered.
*The timer could be longer or shorter, or even be dynamic, punishing serial CLoggers more.
Thoughts?
Note: using the 15 second timer to exit the game is not included in this, and holds no punishment.