Hopefully this is still helpful. I would've reviewed last week but I just finished this example myself.
I think you'd earn solid marks for coding style. Your code is clean, organized, and well-commented/documented.
Unfortunately, I can't seem to get many of the functions to work as expected... the architecture is also pretty complicated. I noticed a few instances of elements being self-enqueued into the same state machine. This is a bit challenging to follow and (possibly?) debug.
-----
CLD 2012