_set_on_demand_error ends any running session (_reset_on_demand_fields)
but left its saved copy, display_on_demand_config, in the cache. A failed
request that replaced a running session therefore made the next restart
resume the session that had already ended.
Clear the saved copy where every error path goes through, and drop the
two restore-failed callers' own clears, which this now covers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>