Сейчас обнаружил, что проблема случается ровно в тот момент, когда отправленная картинка из $GLOBALS['HTTP_RAW_POST_DATA'] сохраняется на диск. Тогда вылетает 500-ая ошибка. Если сохранять что угодно другое — ошибки нет.
Судя по всему, проблема действительно не в nginx, сорри. Осталось только понять, почему 500-ая ошибка появляется. :-)