I have had this issue for a very long time, not only due to fewer connections, but also because of the connections opening, closing, then reopening too quickly... and the server thinks I'm using connections that have already been closed for a short time after.
The way this is solved on another application, and I can't imagine this feature being reliable withOUT it... is
1. leave all primary/backup servers connected while not in use.
2. when a missing part is found, use that open connection to download it.
--extra
3. you could have a option similar to "connected when idle" to enable this feature.
4. It would be great if both "while idle" options had a timer attached, "connected when idle for first x minutes"
That way, you don't go over your max connections on a backup server, neither the primary/backup servers will block you for reconnecting too quickly, and you will always have an open connection for backup use.