Что важнее при обработке фотографий оперативная память или процессор?
Сама по себе процедура особых вопросов не вызывает и решается при помощи toolkit AcImage.
Зачем для такой простой задачи какой-то тулкит, жрущий память на свои абстракции? Валите фотки в папку, которую по крону лопатит convert (на сервере же наверняка есть ImageMagick?) - и никакие ограничения пыха вас не будут парить в принципе.
По идее, если обработка идёт именно в цикле (то есть по очереди!!!!), то совершенно без разницы 1 или 100500 фотографий. Загружаете, обрабатываете, выгружаете, следующее фото. 
Похоже, что ограничение именно по процессору (по времени выполнения скрипта). Как вариант, отсылать на сервер изображения по одному и запускать скрипт для каждого изображения по отдельности. 
Т.е. я на 100% уверен, что нужно перепроектировать код, простая покупка бОльших мощностей маскирует прблему. но не решает её. Будет не 20, а 30 изображений и опять будет таймаут. Будет разрешение выше и опять будет таймаут. Я бы попробовал перепроектировать код.