Если я правильно понял, задача состоит в том, чтобы асинхронно выгрузить на сервер 20 картинок (которые там должны быть обработаны после загрузки) и, само собой, узнать о том, как все это прошло.
Во первых у меня большие сомнения насчет 20 одновременных соединений с сервером. Браузеры ограничивают количество одновременных соединений к одному серверу. Может быть 20 одновременно и не получится, надо гуглить для каждого браузера эти значения.
Во вторых я бы использовал для этого такую схему:
1.
Nginx HttpUploadModule загружает файл и только после этого проксирует запрос дальше, серверу который будут выполнять обработку файла. В нашем случае PHP.
2. А
HttpUploadProgressModule поможет нам отслеживать процесс загрузки файла.
3. Соответственно, когда собрали ответы обо всех успешных 20 загрузках на фронт-енде уже может делать что хотим.