I'm sure RYO varargs was a good idea.
Execute unzip in the bg on the same thread as the DL.
Smarter unzip that reads in blocks and reschedules itself on the same thread. Now the download and unzip usually occur on the main thread, in the background. This makes status updates extremely prompt, since they are not dispatched to another thread.