Each of the files in the array needs to be updated independently, so I think you could just use a loop here and do all the updates in parallel, couldn't you?  That is, you don't really need to wait for the first update to succeed before starting the second update, right?  I suspect that that would change the performance of the upgrade substantially.