A thousand repositories seems a bit excesive. Is there a network topology reason for using so many?
Have you tried using the 'Select repository by' Ping time or Subnet Distance options in the policy as i'm assuming your just using 'Use order in repository list'?
Other options are to use superagents?
This is the only design that works in the environment after taking bandwidth into consideration and Compliance SLA's ect.
So we have to run things this way unfortunately Lazy cashing and SA's wont work.