two things jump out to me, I usually find that I need “option accept-invalid-http-request” when load balancing Exchange with HAProxy. You can see here that for Exchange 2010 I suggested it with success:
Obviously Microsoft have been getting better… However, I’d still double check you are not seeing “req” errors on your state page and that :
echo "show errors" | socat unix-connect:/var/run/haproxy.stat stdio
Shows no errors either.
I too often end up raising the client / server timeout’s which in the past(Again mostly Exch 2010) I’ve needed to raise up to 45 mins or more, it may be worth a try as a test if nothing else…