What is the "go-to" way of running remote zwave instance now

Problem - Running HA in an ESXI cluster and want to migrate to other hosts without problems such as USB passthrough. Currently have a 700 series USB dongle running zwave JS and a Sonoff Zigbee USB. (No MQTT)

Reason I havent gone with one of the options below is there have been some changes to zwave JS and as we all know HA support is changing constantly (Bless the devs!)

My end goal is to have a USB/POE powered device that will passthrough these controllers. Ideally without having to reset my configuration as i have around 50 devices on each network. (It would be a huge huge pain and ill be tempted to not bother at that point).

So solutions ive seen are-
PI running HA running MQTT - Will require repair and setup?
Olimex POE usb ESP’s that you can run i think was serial over network and should just repoint where my controller is?

Or are there any options for migrating the config to elsewhere and carry on the network without much reconfig?

I don’t know the specific solution exactly for you. This is what I do know.

You should be able to plug the existing stick into a “box” that is running ser2net and then just repoint zwavejs to use the stick across the network.

As far as boxes it can be anything. I did see an interesting article about someone using a POE WiFi bridge/router/extender ; loading ser2net on it - which had the added benefit of extending the WiFi network.

https://www.reddit.com/r/homeassistant/comments/t040lh/psa_zwavejs2mqtt_natively_supports_remote_zwave/

When running Zwave-JS, you could run it on a seperate PI or other box on any location as long as it can have a network connection with your HA instance.
I am running Zwave JS and HA on docker. It is super easy copy the zwave-js folder and spin on a docker elsewhere. Here’s my docker-compose for it as an example. it is configured to listen to both USB ports, so just plugin the Zwave stick and off you go. Config can be found and backuped at /op/ha/zwave

  zwavejs:
    image: zwavejs/zwavejs2mqtt:latest
    container_name: zwavejs
    restart: unless-stopped
    devices:
      - "/dev/ttyACM0"
      - "/dev/ttyACM1"
    environment:
      - PGID=1000
      - PUID=998
      - TZ=Europe/Amsterdam
    volumes:
      - /opt/ha/zwave:/usr/src/app/store
    networks:
      - lan
    ports:
      - 3000:3000
      - 8091:8091

Im not running docker on mine, im just using the HA image.

I use ZWaveJS UI in Docker on a Pi. It connects to HA over websockets. Rock solid.