Persist NeedsUpdate with its source ids and restore today's persisted status — UpToDate and NeedsUpdate alike — through one shared helper used by both startup paths, falling back to a fresh evaluation when the persisted status can no longer be trusted (stale date, removed sources, or the update already installed).