например, когда два приложения пишут в один файл или в одну консоль
Не большой знаток Линуксов, там поток и процесс равнозначны в плане работы std::mutex?
Но это же можно использывать по ситуации.
клиент изначально рассчитанный на использование человеком
Белый IP у вас есть - вы же попадаете в интернет как-то.
Можно использовать DDNS и ходить по имени. Но для этого роутер должен уметь в DDNS и отправлять туда свой новый адрес. Но, конечно, лучше статический IP.
Конечно остается вариант, когда вам провайдер выдает серые адреса и отправляет через свой NAT. В этом случае ничего не поможет - провайдер под вас не станет пробрасывать порты у себя. Теоретически эту проблему можно решить с провайдером (пообщайтесь с тех поддержкой, купить в конце концов статический белый адрес). Например знаю, что в ДОМ.РУ по умолчанию используется такая схема с провайдерским NATом, но можно отключить NAT просто в настройках тарифа в их мобильном приложении, бесплатно. У других операторов это может быть организовано по другому.
Порт не важен. DPI системы анализируют не порт, а сам трафик. Порт, конечно, то же учитывают, но лишь как один из факторов, далеко не самый главный. Никто не запрещает вам вешать HTTPS сайт на произвольный порт, правда в браузере придется порт руками писать. Точно так же и с другими сервисами.
stunnel маскирует произвольный трафик под HTTPS, так что должно работать.
Если же все таки хочется все повесить на 443 порт включая и другие сервисы, то видимо надо разворачивать обратный HTTPS прокс - nginx и т.п. Т.е. со стороны сервера будет сначала NAT на роутере, на котором настроен проброс на nginx, а там уже на stunnel. Цепочка получается довольно длинная, я бы не заморачивался, если заработает на произвольном порту. Не уверен, но может быть тот же stunnel может работать как обратный прокси, я им давно уже не пользовался. Тогда на stunnel можно завернуть и другие HTTPS службы.
Не совсем понятно, зачем вам WireGuard, можно трафик завернуть в простой GRE туннель без шифрования и его уже заворачивать в stunnel. Впрочем дело ваше.