Awesome stuff @benesch. Definitely a great approach. 

A few improvements we can do: 

* Rather than keeping track of the remaining work in `download_queue` we can use `self.class.work_queue.empty?`.
* We can make the `cache_filenames` an instance variable so that we don't need to pass it to `sync_function_for`.
* Since this function is now doing a lot, it would be great to seperate it into two `download_cookbook_files` which will download all the necessary files and wait for the download to finish and `segment_fixup` which does the remaining of the work.
* And definitely some specs would be nice.

:+1: I think we can shoot to have this in 11.14.0 since we are in the RC phase for 11.12.0 :frowning: 

If you can take a stab at this that would be awesome... I've heard about some folks needing this on chef 10 as well. We can take care of the work of backporting this once it's ready to go. 

@benesch again awesome job...