A non-list `defer` value (e.g. `defer: todo_list`) used to be silently ignored
- the user tried to shrink the eager tool surface and got nothing back. The
parser now logs a warning naming the expected shape (a YAML list of tool names;
[] keeps every tool eager) and falls back to the curated default set.
Why: config-key fixes must fail closed and loud; #116404 was only noticed
because the key was unregistered, and a scalar value would have failed the
same silent way. Tests collapsed into one invariant covering the registered
default, list/empty-list override, and the scalar warning path.