Fixed hung dialog when waiting for DNS timeout.

1) StatusDialog lets the user know it's cancelling while it waits for
DNS to time out.
2) For some reason I didn't think to return when user cancelled, and
instead put Close() in a try/catch. Fixed that.
3) Task.WaitAll() always blocks, cant await it. Using _isWorking
instead.
4) Done testing network and start/stop.
5) Had a dumb moment yesterday and reused QueryAPI in the thread.
Reverted that change.
6) However I made PollingThreadWorker non-static so OnStop can set
UserCanceled. Every loop iteration instantiates QueryAPI though.
7) Noticed debug statements said seconds instead of milliseconds, fixed.
8) Default interval changed from 1 day to 1 hour. Who would want to wait
24hours for their DNS to update if their server's IP changed in the
middle of the day?