drainAntiEntropy
Advances virtual time in bounded steps to let a never-quiescing background system (e.g. Quilter anti-entropy) converge — the safe replacement for kotlinx.coroutines.test.TestCoroutineScheduler.advanceUntilIdle, which would spin forever on a re-arming timer (see the file KDoc).
The sequence is:
rounds pumps of interval (drive delta-exchange / anti-entropy convergence),
one settleWindow one-shot delay if it is positive (e.g. a claim/settle window),
postSettleRounds further pumps of interval (post-settle convergence).
Each pump is followed by runCurrent to flush tasks scheduled at the boundary instant — advanceTimeBy does not run tasks scheduled at exactly the new current time.
Parameters
the background cadence, typically QuilterConfig.antiEntropyInterval.
number of interval pumps before the settle window; must be >= 0.
a one-shot delay after the first convergence pass; Duration.ZERO (the default) skips it.
number of interval pumps after the settle window; must be >= 0.