I cannot get 1Gbps at home, so instead of wasting money on slow landline Internet with extra traffic limits and ridiculous overage fees, only to wait in the console until my stuff downloads/uploads, I'd like to utilise the unlimited Internet from the two mobile phones I have to establish a VPN to a good network elsewhere.

The problem is that tower reception in my area is bad, so I want to mix Portable WiFi Hotspots from two different phones on separate physical networks and operators.

I'd also want to ensure that I get Internet even if one of the two hotspots gets offline. This comes from the general potential reliability issues of the mobile networks, but also from the perspective that one of the phones will be my primary phone to take away with me, and it'll only have its hotspot enabled when necessary, whereas the other hotspot will be always-on.

One phone is expected to have LTE, the other -- UMTS/HSPA; both might occasionally go into EDGE, due to poor coverage. This probably means that latency will be all over the place, which would probably be true even without EDGE in the equation.

Both phones have unlimited traffic, but after a certain pre-defined usage of a certain number of GB, they experience throttling.

Obviously I'm looking into having two regular UNIX boxes on both sides of the VPN to do all the mixing. I mostly do OpenBSD, so a solution that's capable of running on OpenBSD is highly preferred, but I'd be happy to learn about the state of the art for these kinds of things in Linux, too, as well as general advice of what's the best way to create something like this.

How do I solve this problem? My main concerns are to ensure reliability, failover, full use of available bandwidth, as-low-as-possible latency for SSH (and possibly SIP, too), all whilst mixing the two underlying connections. This last part reminds me of SCTP, but I'm not exactly sure if it is to apply here.