Hook invoked as a permanent leaves the battlefield — reverts scheduled
LoseControlCondition::LeavesPlay commands. The card is technically
already in limbo when this fires, so we just clear the schedule.
Revert a scheduled control-gain. Mirrors Java ControlGainEffect’s
GameCommand.run(): restore original_controller_eot, drop the
lose_control_condition, and clear granted keywords. Zone guard — if the
card has already left the battlefield, the scheduler caller is expected to
have handled cleanup via leaves_play_hook.