Using Thread/sleep inside of a go block is questionable. Using >!! and <!! inside a go block is simply wrong. Please switch to <! and >! and if you aren't simulating actual work, remove Thread/sleep. Failing to do so can seriously mess with the core.async thread pool.
Doing blocking operations inside a go is a anti-pattern.
Doing blocking operations inside a go is a anti-pattern.