use internal task dispatcher

adds implicit sequential mode if desired. 

also added some documentation.

has been mostly anecdotally tested, this is a bit hard to write unit tests for...