go-duplex: free in separate timed goroutine for guarantee