Summary:
VirtualizedList can leave its high-priority update flag set when a queued cells updater becomes a no-op, because componentDidUpdate does not run. Complete the high-priority attempt using a setState callback so the next urgent window update does not wait for the batching timer.
Scope completion to its attempt so an older callback cannot clear newer work scheduled during componentDidUpdate or onEndReached. Preserve the no-op fast path and the existing once-per-commit scheduling protection.