See my response to virulent. I believe it re-runs the parent function multiple times until all of the child ajax functions have evaluated to their return values. This probably explains why the author states that the child functions must be idempotent (edit: and the code readonly in its entirety to prevent side effects).
Nothing of your sync functions work until after you do syncify.revert which gives you a function taking a CALLBACK.