massive go routine/memory leak, data race and early exit for timeout == 0

fixes #10 #11 #12