Например, замени мапу TrackRX на канал буферизованный
А это как?
Мне приходит пакет, в пакете есть его seqNo (uint32), я в мапу кладу структуру с ключом seqNo, а в данных - время приёма пакета и тип пакета.
Потом отдельно по таймеру взвожу мьютекс, сканирую всю мапу (раз в секунду), нахожу протухшие пакеты, создаю отдельно слайс с пакетами-автоответчиками, кладу туда автоматически созданный ответ с ошибкой "тайм-аут обработки", удаляю запись из мапы, снимаю мьютекс и закидываю все автосозданные пакеты в канал для отправки в сеть.
Если ответ приходит вовремя, то также удаляю запись из мапы.
Как тут канал поможет?