startSync method
Start the background sync loop — required for watchSyncStatus to
advance past idle. Idempotent.
Implementation
@override
Future<void> startSync() async {
startCount++;
final gate = startSyncGate;
if (gate != null) await gate.future;
if (failStart) throw StateError('fake start failure');
}