Introduce a "debug" mode to the TCP/IP stack
As this would be reasonably impactful of performance on busy servers, it would have to be designed for debug situations only. The idea is that we have a log specifically for TCP/IP debugging. In it would be written things like TCP session establishment, connection resets, adapter events, tcp window size change events, offload status, rss events, route changes, and a big one, MTU negotiation/black hole router events.
You should have a look at estats. It's quite comprehensive and will likely meet at least your TCP needs:
Take a look and let us know :)