Treat overlapping source and destination area errors as Fatal.
Remove unused record points SetReadable and SetWritable.
Add the ability to stop and then restart all threads through the SynchronizedExit helper.

Ensure that calls to SynchronizedExit from the TraceThreadListener are never made while locks are held, because other TraceThreadListeners waiting for those locks would never have a chance to join the synchronized exit.
When a thread's event size is exceeded, stop tracing (and archive the trace file) but continue execution.

Correct SynchronizedExit so that all registered threads can be brought to a synchronized stop and then started again.