Большинство тестов передачи, которые мне попадаются, заканчиваются на sleep и проверку на удачу. Здесь без этого можно обойтись.
У запроса есть идентификатор. Воркер получает запрос из небуферизованного канала, записывает этот идентификатор в слот результата для этого запроса и отправляет обратно подтверждение с тем же идентификатором. Завершённую отправку назовём sent, запись результата observed, а получение подтверждения тестом acknowledged.
Если отправка в небуферизованный канал завершилась, значит, соответствующий приём уже произошёл. Больше она ничего не говорит. Воркер мог ещё не дойти до инструкций после приёма, поэтому sent и observed попадают в лог в любом порядке, а проверка слота сразу после отправки превращается в гонку.
Поэтому тест ждёт подтверждения. Воркер пишет результат до отправки подтверждения, тест читает слот только после его получения, и порядок даёт сам канал. Таймаут остаётся, но только чтобы прервать зависший тест. О прогрессе он ничего не говорит.
По одному каналу в каждую сторону, и всё. Кажется, эту передачу можно оставить такой же маленькой.