Changed a lot of catch blocks to route to a centralized non-fatal exception handler for consistancy.

Fixed a race condition where an IdleWorker being disposed could allow an ObjectDisposedException to occur.