It's a peer-to-peer connection done with WebRTC DataChannels, much like the multiplayer feature. However all the connection details are handled by the browser and it's not an area I know a huge amount about the internals of, so it's difficult to comment further. Our role is largely just the signalling server. Both sides generate some connection info about how they can be reached, our signalling server merely swaps those so each side gets the other's connection info, and then it tries to establish a connection.
This is different to the HTTP server model used by Construct 2, which is more of a client-server model so in that sense is probably simpler. But you can't run a HTTP server in the browser - which is why Construct 3 does it differently. Also the HTTP server model had its own issues - sometimes you had to configure the firewall; sometimes you had to try a different port; sometimes you needed admin permission (which in some cases you can't get); some people had an altered system "hosts" file which broke it; sometimes Windows would just return a mysterious error code and refuse to work, for reasons we never figured out. So that was never a perfect option either. As with most things in technology, any particular solution has a series of tradeoffs, and other solutions have different tradeoffs and aren't always clearly all better or all worse. I like Remote Preview because it's convenient with the QR code, doesn't need any specific configuration, and works over both local networks and the open Internet. But I guess the connection speed is not always perfect.
One potential workaround is if a HTTP server really is much faster, you can host your own local HTTP server using tools like nginx, caddy, python or node. It requires a bit of technical set up, but then you have a folder you can do a HTML5 export to which you can load on your phone from your PC's local HTTP server. (Edit: I realise that the original post pretty much does exactly this! So you're ahead of me on that one.) Then to make that work more smoothly we could explore a feature like "quick export" which just does a default settings HTML5 export to a local folder (which we can directly write to with the new native file system API in Chrome). This is the kind of thing which despite not being ideal and still taking some work to put together, is still far less work than coming up with an entire "Remote Preview 2" type feature.