Why not use local variables on creatures as markers instead of spell states? Except for the Apply Effects List opcode, which is the effects road of using a spell state as a marker, they are going to be used in script triggers, probably in some combination. But it's just as easy to write a local variable check:
IF
Detect([ANYONE])
TriggerOverride(LastSeenBy,Global("ANORAK","LOCALS",1))
THEN
RESPONSE #1
... (if you want to set the variable to 0, use ActionOverride in conclusion here, or if you want to avoid breaking the actions queue, e.g. in combat, ApplyRES a custom spell that nullifies the variable with opcode 309)
END
As for how to set the local variable in the first place, there is the same opcode 309, and here you can type any variable name without having to worry about unique combinations of states or states outside of the known range. Just make a custom spell. I tend to include a Delayed/Permanent reset of my locals, to keep them from accumulating. What time interval to write in before the variable goes back to 0 is a decision no different from deciding how long to give to the spell states. I also preface these effects with a clear-the-table reset to make sure the creature doesn't have any lingering locals from, say, its last life, when it died under a local before the delayed reset could take place:
309 -> Set to 0, Inst/Perm
309 -> Set to 1, Inst/Perm
309 -> Set to 0, Delayed/Perm
I think this method has all of the advantages of spell states and none of their drawbacks.