Your redesign ideas are interesting, Stefan. One thing we should refactor is 'debug' logging. Proper debug logging is log early and often, but there is overhead involved in preparing the args and submitting the log request, only to have it fall on deaf ears.
If we are doing any significant 2.0 refactoring, toggling the truly-debug log level processing at compile time would be a big win.
