Read <user_home_dir>/config.toml if it exists and return the
configured saga retention days, falling back to
DEFAULT_SAGA_RETENTION_DAYS on any error. The optional log_warn
closure receives a human-readable diagnostic line per failure path
(file unreadable / malformed / negative value) so callers can
route it through crate::log() without introducing a tracing dep.