OK.
So what about forcing to reload all the scheduled units at step 3? This you don't get in the case where A doesn't see the change from B.
It would potentially delay the result of the completion request, but I not sure users are fast enough to get in this situation usually. And if they are, at least they get 'correct' result.