For each procedure step, we now update the store twice; once to persist lock state and then later to persist the change in the procedure's dataset. Writing the store is the long-pole in procedure operation. Can we unify the two steps? (It is awkward because currently second persist is done outside of lock because it slow... and then updating lock state must be done inside lock else....). TODO!