sync s1 will start sooner, working on State1
s2 will start later, working on the same State1 (since s1 didnt finish yet)
s2 will finish sooner, update the state to State2
s1 is still running, then finishes and replaces it with State2' (and it didnt see the State2 result)