I wish I had known this two years ago. I ended up writing my own embedded connection struct to trace these things [0].
type Connection struct {
net.Conn
OnEventCallback func(clientClosed bool, serverClosed bool, err error)
}
[0] https://github.com/s-macke/SlapperX/blob/master/src/tracing/...