Can you clarify what "idle timeout" is? I'm not terribly familiar with HAProxy.
What is your "timeout server" set to? I believe you'll want to make sure this is set to something at least as large as your elasticsearch.requestTimeout setting within kibana.yml. This defaults to 30000 (30 seconds), so we'll want to ensure that HAProxy allows Elasticsearch at least that long to respond to requests.
Ok we're going to try this and I'll come back to you. From what I got the http-request timeout aims at ensuring no client open connections but don't send any request data. But maybe it leads to some issues with http keepalive elasticsearch.js seems to use.