Umm, teck, there's a bug that happened twice or thrice, and I wonder if it will help since I believe it is caused by switching.
I am using a Steelix, about less than half its hp and is currently BURNED, and my opponent's using a Salamence - 1/4 hp remaining.
The Salamence goes first, used ember, and my steelix is about to faint (only 1 hit of any move before it faints).
My Steelix used ice fang, defeated Salamence, and burned after, so it also fainted.
Both of us have to bring out a poke, and I went first, then my opponent.
But funny thing is, the system said that my opponent's poke is unable to battle, and I am LOSING pokedollars.
we found no solution because making a move doesn't do anything but to make me lose pokedollars, and luckily, he, afraid to lose some also, decided to disconnect.
It happened before also, but it is my opponent's poke who got burned and same bug appears.
So it may be safe to assume that, the player whose poke got [burned - fainted - switches to another poke] will lose pokedollars. (sorry though, since I don't have SS for those.)
hope this helps, since it is somehow associated with the switch thing, if ever switches would be fixed and implemented/accepted.
About this topic, I believe the best possible solution is to nerf stat boosting/decreasing moves. It is because I think only few (or no one) would complain/annoyed if it is implemented. B/W2 movesets, may or may not solve the problem, since the problem mainly concerns stubbornness of players, and adding more movesets might likewise putting more oil to the fire. TMs, will just make an uber poke more uber, just like as you said. Dragonite with Agility+Outrage+(FireBlast/Thunder/AquaTail) would be impossible to beat unless you switch (or maybe even if you switch, it'd be near to impossible). Switching, I believe, should come, after all moves are fixed, and together with TMs.
Lowering the cap of status moves, Decreasing the percentage of increase in stat or a combination of both would do it. For now.