I really know very little about SOAP, but I certainly understand the issue outlined in the (very old) thread that you mention. In particular, @futzle is really THE authority here on such things and, as she says:
However, the openLuup HTTP server does, to some extent, do that.
Will openluup deadlock on a long wait--say several hours.
It obviously depends how you implement it. If you try simply to use luup.request() or http.request() it will deadlock or time out. However, the TCP server code in the IO module can open sockets and listen on them for as long as you want, but the initial request has to be incoming, not started by openLuup.
What’s missing is something that I’ve been wanting to implement for several years, which is simply (or possibly not) an asynchronous TCP request with multiple callbacks on incoming messages. With that, I could make the VeraBridge plugin much more performant, and also do other magic along the lines you require.
Is an http listener in openluup the right way to go. If so, do you have any suggestions on implementation/callback routines.
So, not as it stands, but, again as @futzle pointed out:
I’d love to do this, I intend to do this, …but I need to take some time out again quite soon for some recuperation.