Yeah, I'm shaking on the details of this guy.  Which thread owns what, and the fact that the concurrency locking between the data objects isn't well encapsulated (and therefore subject to "minor tweaks of death").

Again, I like the direction, but I htink maybe we should make the WorkQueue its own class...