nginx can reload the config files without closing the listening port or interrupting any existing requests. haproxy can't do that. So you can actually live-update on-demand much more of the nginx configuration than you can the haproxy configuration.
HAProxy reloads don't interrupt existing connections (unless you want it to).
There is a ~microsecond downtime in accepting new connections. https://engineeringblog.yelp.com/2015/04/true-zero-downtime-...
https://nginx.org/en/docs/ngx_core_module.html#worker_shutdo...
Or paying $2500/instance/year for nginx plus.
Maybe nginx isn't better than haproxy for many purposes. But updating configuration isn't the reason :)
If you're at a scale where logging into each server from your control node 'hurts', then you're still going to hurt with all the config other than nginx anyway.