In a nutshell ... if on enter, one or more PCs are there already ... abort the script. If the triggering Pc is the first one into the area ... do something else.
Couldn't you just save a local int to an object in the room, default to 0. Add one to the onEnter for each entering PC, subtract one for each leaving PC, if int is 0, fire the script, onEnter?