* 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