sleep sort via goroutines, because kernel threads are just too inefficient