Review passed all criteria; update sprint-status to done, close the
story file, and record two deferred items (GPIO pins into constants.py,
ButtonHoldDetector init-time GPIO dependency) in deferred-work.md.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace stub ButtonHoldDetector and LEDController with real gpiozero
implementations; update tests to use MockFactory so they run without
physical GPIO hardware.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>