Looks like if you did not use a sameThreadExecutor, it could execute outside of the synchronization block, but I think you're right that we're technically safe here. Still, I think it would be clearer and no less performant to add an explicit synchronization to our functions, which also allows us to ignore the implementation details of Curator.

This code path should be called so infrequently that we could probably throw in a Thread.sleep(1000) and no one would notice...