Okay, so this was reviewed on IRC and approved by Deck Knight and all other ASB officials, so this is a thing that will be implemented.
SUBSTITUTION REVAMP
First things first, this introduces the concept of "Substitution Classes". These are moves that are grouped together and are considered the "same move" for the purpose of a single substitution condition. These classes will be rigidly defined, used for the purpose of grouping together moves with the same effect. This would include non-attacking moves with the same effect but NOT attacking moves with that effect. For example: Stun Spore, Thunder Wave, Glare would be in the class Paralysis-Inflicting Move, but Body Slam and Discharge would not be. Obviously, not every move will have a class- unique effects like Taunt, Torment, or Perish Song would not have an associated class. These classes are also fairly specific. Paralysis-inflicting moves (Thunder Wave, Stun Spore, Glare) would be a distinct class from Poison-inflicting moves (Poison Gas, Poisonpowder, Toxic), and no "Status-inducing Moves" class will exist.
There is one specific exception to this rule: Protective Actions and Evasive Actions. Protect and Detect belong to their own class (for the purpose of Feint substitution), and Agility (Evasive) and Teleport (Evasive) belong to their own class (for the purpose of area-target substitution). However, the two classes can be combined into a single class: Protective / Evasive Actions. This is the only class combination that is allowed.
For the purposes of general use, this implements the following classes:
Protective Moves: Protect, Detect
Evasive Moves: Agility (Evasive), Teleport (Evasive)
Damaging Evasive Moves: Dig, Fly, Dive, Bounce, Shadow Force
Paralysis-Inflicting Moves: Thunder Wave, Glare, Stun Spore
Poison-Inflicting Moves: Poison Gas, Poisonpowder, Toxic
Sleep-Inflicting Moves: Spore, Hypnosis, Sleep Powder, Sing, Grasswhistle, Lovely Kiss, Dark Void, Yawn
Confusion-Inflicting Moves: Confuse Ray, Supersonic, Sweet Kiss, Teeter Dance, Swagger, Flatter
Switch-Preventing Moves (Only allowed during Switch = OK): Block, Mean Look, Spider Web
Trapping Moves: Fire Spin, Sand Tomb, Whirlpool, Magma Storm, Bind, Wrap, Clamp
Switch-Forcing Moves: Whirlwind, Roar, Circle Throw, Dragon Tail
Self-Switching Moves: U-Turn, Volt Switch, Teleport (Switch)
Healing Moves: Roost, Slack Off, Recover, Moonlight, Synthesis, Morning Sun, Softboiled, Heal Order, Milk Drink, Swallow
Status-Healing Moves: Aromatherapy, Heal Bell, Refresh
Lock-On Moves: Lock-On, Mind Reader
Attack-Reducing Moves: Growl, Charm, Featherdance, Memento
Defense-Reducing Moves: Leer, Tail Whip, Screech
Special Attack-Reducing Moves: Captivate, Memento
Special Defense-Reducing Moves: Fake Tears, Metal Sound
Speed-Reducing Moves: String Shot, Cotton Spore, Scary Face, Bulldoze, Icy Wind, Mud Shot, Rock Tomb, Electroweb, Glaciate, Low Sweep
Accuracy-Reducing Moves: Flash, Kinesis, Sand-Attack, Smokescreen
There is also an additional class that is implemented in this update- 17 to be precise. Specifically, "Damaging. One can specify, for example, "Damaging Fire-type Moves", and it would apply to all moves of the type Fire with a Base Attack Power stat. This would apply exclusively to damaging attacks, and must be applied entirely or not at all. For example: "Damaging Water-type Moves" is legal, but "All Damaging Water-type Moves except Surf" is not. You may only sub against one move or all moves of a class.
In addition to this, the "Substitution Thresholds" are no longer in effect. Instead, number of substitutions is a claused amount to be set per battle, in the same way as items, abilities, and chills/recoveries. It defaults to 1 sub for Basic, and 2 subs for Stage 2, Stage 3, or Single Stage Pokemon. Number of substitutions must be set at the beginning of the battle. The number of subs must be agreed upon by all parties in the battle. There is no cap, but exercise restraint- too many subs clogs things up and can get silly for the ref.
This is now considered implemented for any battles beginning after the time of this post. It does not affect battles currently in progress unless both/all battlers agree to adopt it.