Screw up game balance and fix bugs by creating more bugs. Now you too can join the discussion. This is where the magic happens. Sometimes actual magic.
Every solution you've presented so far could be more easily handled by just coding in a simple if() statement that says if a mob is whatever, it can't use the gate.