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.