At about three o'clock this afternoon, I picked up the documentation again and decided to try to start coding to the interface. By 6 PM, I had the better part of the architecture set up to support what we want to do in multithreading.
I have either drastically misunderstood something or this is easier than I thought.
Or maybe I'm just good at this...
But earlier today, I'd estimated this as a three week task. Mind you, I still have to add all the error handling and a little bit more boilerplate, but I think I should be able to test this architecture on Monday and see if it's sane.