Three fixes: (1) check_ffmpeg() was called at import time causing startup crash if FFmpeg not installed; moved to lazy _ensure_ffmpeg() on first use. (2) _workflows_cache was never populated so filesystem was rescanned on every call; now caches after first scan. (3) list_tasks() was reading every metadata.json individually; now uses the existing index for O(1) performance.