At the request of Michael Penney I'm posting an update of what our task manager has evolved into. We are working on creating a method for tracking our internal projects and assigning sub-tasks and tracking bugs as well as allowing for collaboration.
Currently we can do the following:
- create tasks and assign sub-tasks
- sub-tasks have all of the same capabilities as the parent task
- assign a team with roles
- quickly email all team members (using our quickmail block)
- keep track of time logged against a task (using our timetracker block, screenshots below)
- add numerous events with start/end dates and descriptions with a dropdown calendar (jscalendar)
- gantt chart (using jpgraph, requires gd) with 1-level of subtasks and events displayed.
- create different task types to allow for filtering, ie. project, bug, feature request, change request, etc.
- adding a forum per task (or something similar) to track discussions and allow users to collaborate.
- generate more reports to give an overview to a project manager
- create a course type that will hide non-parent tasks and attached forums so the course page is not so cluttered with sub-tasks and forums.

Parent task. Bars and text on gantt chart link to respective tasks and events.

sub-task (bug): gantt chart dynamically shows more date information if the generated image will not be too large.
Below are screenshots from our timetracker:

Clocking in: the user forgot to clock out on a previous day, they must fix the hanging punch before they will be permitted to begin logging time today. The dropdown boxes are populated with all of the various modules in the course and the user can log hours spent on each module instance.

Punch report breakdown for the current week and current month. This will be extended to drilldown to more detailed information on each punch such as the time in/out and what modules time was logged against.
Please feel free to post question/comments and/or suggestions for this.