Hopefully fix locking bug by allowing experiment state updates to be async.