Asynchronous queue for golang using condvars/mutexes