HAProxy health checks and changing server state
Solution 1:
Figured it out. HAProxy does its DNS resolution at startup, which I'd suspected but had a hard time confirming since all my queries just led me back to the config manual. Since I own the DNS infrastructure and namespace being queried (SkyDNS from Docker containers) I'd hoped to use that for service discovery and HAProxy backends. Seems like an Nginx-like resolver system may be on the HAProxy roadmap according to this, but a checkout and quick scan of the latest sources didn't indicate that was live yet.
Have since switched to confd-based config file generation and graceful restarts. A bit more annoying to configure but seems to do the job.