fix: pull-to-refresh race with scenePhase auto-reload
When returning from background after 5+ minutes, onChange(scenePhase)
fired loadInitial which set isLoading=true. If that request hung on a
stale socket, pull-to-refresh hit the guard and silently returned.
Now loadInitial cancels any in-flight load before starting a new one.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>