Synchronized on both the task list and pending task queue
Add simple enumeration for task state [complete|error|executing|pending]
Replace the [task->ID] map and [task ID->future] map with a single [task->future] map