Данная ошибка должна решаться на стороне nginx. В дефолтном поведении все честно — ему бэкенд отдал текст(html) — он честно вернул ответ 200.
Как, тоже гадаю, к сожалению((
Впрочем кастомный обработчик ошибок в php это хоть и костыль — но вполне себе решение для php-fpm.