The exit is real (RuntimeError from require_readable_config_before_write), but the consent gate reads the same config.yaml and reads it as collection off: a live run on a scratch install with an unparseable config.yaml wrote no metrics store at all. A closed value nothing can emit only widens the contract.