This is an outline of how times should be updated and added together.

Start the program, create a task three levels deep and give it some time. You should get something like this.

Task | Session | Total
--- | --- | ---
A | 5 | 5
a1 | 5 | 5
a11 | 5 | 5
a12 | 0 | 0
| Session: 15 | Total: 15

Now exit out of the program and start it up again. You should see the following.

Task | Session | Total
--- | --- | ---
A | 0 | 5
a1 | 0 | 5
a11 | 0 | 5
a12 | 0 | 0
| Session: 0 | Total: 15

Now start the timer and let it run for a minute, then stop it.

Task | Session | Total
--- | --- | ---
A | 1 | 6
a1 | 1 | 6
a11 | 1 | 6
a12 | 0 | 0
| Session: 3 | Total: 18

Since a parent task can have a timer active on it, it needs to be included in the summary Session and Total times. So, in this example, the Session time will jump three minutes for every minute the timer is active.