Ah, just get rid of the expt_locked check. Not worth the trouble and
its going to get replaced at some point by a busy state. The swap scripts properly set the next state before unlocking the experiments table, which possibly leaves some small races as experiments transition through states (which happens with the table unlocked, cause I used to have this really handy variable called expt_locked, which no one really likes anymore). We either have to use more table locking, fix up expt_locked, or punt and say it won't happen more than once in a few thousand operations!