Aside from the learning experience, you could obviously simplify things somewhat with similar results to what you’ve achieved thus far with a single pfSense, multi-wan and tweaked gateway monitoring and groups setup.
With the caveat, like you mentioned, that any active tcp connection won’t survive a gateway change. What you’re chasing now is some form of bonded solution, which requires at least two parts to the equation - your side and (typically) an ISP who offers bonded solutions.
Here’s some tidbits you might want to look into:
- Multi-pathing/aggregation discussed here in the forums
- OpenMPTCProuter
- MLVPN