refreshIncremental

suspend fun refreshIncremental(onSyncProgress: suspend (eventsProcessed: Int, totalEvents: Int) -> Unit? = null): DustLocalState

On-demand incremental refresh (UI "refresh" affordance, between-tx freshness): drop the in-memory memo and re-sync, which lands as a fast DELTA on the persisted checkpoint. Unlike forceResync this does NOT delete the checkpoint, so a routine refresh never triggers a full genesis re-sync. forceResync stays reserved for error-170 recovery, where stale roots require a clean rebuild from genesis.