Or is it possible to host a NodeJS-based web app on a static website host, like surge.sh? Locally, I can start the node server in the console; is that something I can do on a static website host like Surge?
No, in general that is not possible.
You need at least the option, to get to the bash/console of the server, where you websites are getting hosted. Not only that you need to install node.js initially, you also need to start the node.js-webserver and in addition to that, you probably need even more flexibility e.g. to install several npm packets.
There might be static webhosters who can offer that via a control console or a GUI but personally I don't know a single one who can do that.