Chat Logger synchronization change

Do a slightly better job not blocking the main processing thread.
Now wait on an event in the worker thread instead of blindly calling
Thread.Sleep.