1-2: Фреймворк/ОРМ не принципиальны — накосячить и страдать можно абсолютно с любым или без. Определитесь для начала с вашими конкретными требованиями к нему, а уже потом собираете список подходящих под ваши требования, щупаете каждый и выбираете тот, что вам больше нравится.
3: Описать в ОРМ модели на текущий момент времени и дальше новые миграции делать в рамках данной ОРМ. Ну и проверять на тестовой БД перед деплоем, конечно же.
4: Нет, смысла нет. Сегодня оно есть — завтра нет или ещё что. А ещё есть проблемы совместимости и сама незрелость проекта. Производительность — понятие относительное. Если она вам нужна — для этого есть такие вещи как "Нагрузочные тесты", "Профилирование", "Оптимизация" и прочее. И использовать это надо тогда, когда у вас встанет такой вопрос. Ну или осваивать Go/Rust/C#/C++.
Иметь внятные способы/библиотеки для WS-соединений
uWebSocket — потому что на сях и активно развивается.
возможность само-перезапуска в случае, если совсем "ой"
pm2 или аналоги типа
luster.
бэк на js - тот же зоопарк, что и фронт на js. В связи с чем нужна помощь.
Зоопарк сейчас вообще везде. Вот именно для помощи в вашем конкретном случае вам следует нанять опытного NodeJS разработчика как минимум для первичной консультации и регулярного общего контроля хотя бы. А именно: собрать ваши требования и детали по проекту, подготовить как минимум общее ТЗ и уже по результатам консультации принимать какие-то конкретные решения.