Correctly clean up with direct driver

What's happening? Comments, please. E.g. "Start the thread which waits for blah", "test that the thread is waiting", "test that the thread is not waiting"...