Pre-scan storage filenames and check each task's predicted cache file
before generating. Existing previews are now counted as "already cached"
and skipped, instead of being counted as remaining work and regenerated.
Storage-scan and plan-computation failures fall back to generation.