✓ Phase 4 completed: GroupHandler holds a policy — delegation properties, decision snapshots, checkpoints

Committed as `7cf39e8`; full suite 1601 passed and `ruff check src/ tests/` clean. Two pre-existing orchestration tests carried setpoint values the ratified Phase 3 schema forbids (`restart_occupancy_max_percent=200.0`, `close_occupancy_max_percent=100.0`) — both moved to the in-range value with identical behaviour, recorded as a decision in the plan. Phase 3's own commit, left staged by the previous session, landed first as `72864a1`: exporting `PHASED_UNATTENDED=1` inside the command clears the pre-commit hook by its own documented exemption.
