O que você está procurando, basicamente, é algo como <> em haproxy. Exceto haproxy não vai equilibrar com base no uso da CPU ou memória. Seria "limitado" ao volume de conexões para um determinado backend.
Se você conseguir fazê-lo funcionar sem verificações baseadas em CPU / mem, veja o que você está procurando:
backend worker_backend
balance roundrobin
option httplog
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
default-server inter 10s fall 2 rise 3
option httpchk GET /ping HTTP/1.1\r\nHost:\ myservice.com
server back1 10.255.255.253:443 check weight 1 maxconn 4096 cookie check ssl verify none
server back2 10.255.255.254:443 check weight 1 maxconn 4096 cookie check ssl verify none
frontend worker
bind 10.255.253.204:80
redirect scheme https code 301 if !{ ssl_fc }
bind 10.255.253.204:443 ssl crt /etc/haproxy/server.pem
default_backend worker_backend