Move to an async-style test when working with channels we read from

Rather than using badly-placed some time.Sleep() functions to wait on
a goroutine to trigger we can instead block a read from a channel to
trigger the work to get processed sooner.