Fix todos:todo agent crash from string output_path
Dream scheduler sends output_path as a raw string in the request dict,
but _run_agent and related functions call .exists() on it expecting a
Path object. Coerce output_path to Path at all four read sites.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>