Adding passthrough of timeout, and attach points in the Run method. Clea...

...ning up timer code. Setting default to 30 seconds, and adding debugging to random numbers ample
Forgot Run and RunAsync a different methods, and forgot about the optional stream params. Carry on :)