Some good work has already been done to tackle this issue. If you follow the instructions on this page, you should be able to experience instant switch creation or package installation. But it seems that there are still problems with ocamlfind.
As my skills are limited, I hope to motivate contributions on this task by providing a bounty. This is a 300 USD bounty. It can be found in this page: https://www.bountysource.com/issues/1250468-local-cache-of-binary-packages
As a side note, I am thinking that we could have a topic gathering the different existing bounties. I already created one to fix lwt ppx in the past. Ahrefs creates bounties now and then. One central point could help for visibility.