'kids'... yeah right...
As for the resetting of the trigger, Spirit features a trigger_inout wich may be just what you need here, but it's possible with plain HL too. Although it's a bit complex...
Let the floorbutton trigger a multimanager, wich triggers the serie of events you want. But that multimanager also has to trigger an env_global that sets the master of that floorbutton to off, so the button doesn't work anymore. You should set this master to on again only when the player has left the floorbutton, e.g. you place a trigger around this button so that the player goes trough it when he leaves the button. This trigger activates an env_global that sets the master of the floorbutton to on. This would set the button to useable again so when you go back you trigger the events again.
I just tested it out and it worked, 6 entities to get one floorbutton operational. You may need to tweak it a bit but it'll do it.
Oh, and TE_DLIGHT does not cast shadows.