the problem is you can't just 'fix' TCP. even if you make it work with both IPv4 TCP and IPv6 TCP, you're still missing the other protocols out there (SCTP, UDP, etc, etc), and more importantly, can NEVER fix protocols that are being encrypted (ie TCP inside VPN packets). the protocols that you aren't 'fixing' will just continue barging their way through.
the only workable solution is to drop packets and assume the protocols themselves will adjust (which they will, if they are working correctly, and if they're not working correctly.. they'll be penalized with a lot of dropped packets).
dropping packets is unpleasant, because it is wasting bandwidth, and causing TCP stalls.. but ECN barely works because half the routers out there drop or mangle it, so it's the only solution.