client_inactivity_timeout should remove the errors but in general it should not directly impact the problem.
As far as I understand you, close_timeout solves the problem? As long as your LS instances are not overloaded, the other
close_* options should also release the file handlers.
Your best test environment to eliminate network in LS problems is definitively writing to files and see what happens. If the the problem does not occur when you write to file, it's a strong indicator that it's related to LS, network or LS output on the beats side.
How many events per second do you have? Are your LS instances under load?
Do you have any load balancer in between beats and logstash?