Предположу, что из-за того, что WS держат постоянный коннект. А http(s) работает пакетами - пакет получил, ответ отправил и вас ничего больше с ним не связывает
Не совсем понимаю при чем тут домены, они идут уровнем чуть выше и пока их можно вообще не учитывать.
Вот тут код-пример того почему вы не правы Как синхронизировать переменную в PM2 на разных ядрах?
на разных ядрах будут запущены разные экземпляры экспресса с 1 и тем же портом, а переменная будет везде разная.
запускать как то так pm2 start -i 0 test.js, ну и ядер нужно хотябы 2 для теста. А домен будет один и тот же localhost:9999