Home assistant supports serial, ethernet and mqtt gateways. You can have multiple gateways connected to home assistant at the same time.
The gateway connection type decides how the controller should communicate with the gateway, but it doesn't change the mysensors serial API. Messages between gateway and controller will still have the same structure. They will just be sent over different transport protocols.
The controller doesn't care about what type of device is on the other end, it only cares about the transport protocol and the serial API to use for messages.
Regarding choosing gateway type, I suggest you try something and see how it works for you. Since you already have mqtt set up you could start with the ESP and try connecting it via Wifi+mqtt.
A serial gateway is probably the easiest to set up. Just take care to match baud rate settings on device with controller, depending on what device you chose as gateway.
Read more on the mysensors site.