* fix(mobile): run one more sync round when a request arrives mid sync * fix(mobile): only queue the extra sync round when the caller asks for it * fix(mobile): skip the queued sync round when the sync fails * clear the sync task in whenComplete and gate the queued round on the result * simplify the queued flag gate