Обратный прокси на виртуальной машине. Это безопасно?
Если роутер не имеет уязвимостей и DMZ будет только адрес этой виртуальной машины и доступ этой виртуальной машине будет перекрыт (о чем вы не упомянули) никуда кроме как за пределами роутера и API - то вполне.
Как-то все слишком мудрено.
По сути вам нужен безопасный бэк к которому не имеют доступ сторонние пользователи, и фронт который напрямую работает с пользователями.
В качестве фронта - nginx который будет работать с пользователями. Где его размещать не суть важно.
Хотя гораздо удобнее сделать это на какой-нибудь хостинговой площадке, чем держать  в своей сети.
А уж защита бэкэнда - тут все элементарно. Простое правило для файервола разрешающее доступ к бэку только с одного IP адреса.