RD>>А точно нет своего кода, который NotFound может выдавать?
B>там временное логирование в самом начале обработчика и оно никогда не вызывается
Ну логирование все же так себе показатель. Особенно, если приложение через какой-нибудь systemd запущено.
Проверь еще, что ip/порт в LISTEN, когда приложение запущено, типа такого: sudo lsof -i -P -n | grep LISTEN или netstat -tulpn | grep LISTEN
Но, скорей всего, там все будет нормально.
Вот здесь, видимо, твой 404 вылазит.
Можно оттуда попробовать посмотреть по коду, почему listener не находится по префиксу.
https://source.dot.net/#System.Net.HttpListener/System/Net/Managed/HttpConnection.cs,299