remove threads from nonessential code pieces

This pulls the wait_for_status call completely out of any threaded
context.  Since Timeout in ruby also uses a thread, pulled that out as
well and did a manual countdown style timeout.  The only thing that
is left in threaded is the actual start/stop command, which is what
needs to be threaded.