Налицо нецелевое использование каналов. Но даже так есть пяток разных вариантов одинаковой степени паршивости.
Есть монструозный интерфейс на 20+ колбэков кард ридера, мне нужно давая асинхронные команды ридеру дожидаться определенных колбэков на протяжении выполнения, как это можно сделать?