Tweaked logic that detects a crash of the network thread (which can occur under low memory conditions)

- if the thread fails because we asked it to, does not log any error
- if the thread fails but the computer is shutting down, this is probably okay.
- if it wasn't supposed to fail, log an error, and in DEBUG builds, call Environment.FailFast(...)
- not sure what we should do in RELEASE builds ... ?