If you want something simpler:
now() {
echo $(date "+%Y-%m-%d %H:%M:%S") - "$@" >> $HOME/.now
}
Usage: now "Working on Project A"
now pause
now continue
now done
You won't get a nice report and you'll have to calculate hours yourself, but it supports every edge case you can think of. Need to back-date an entry? Just open the file and change the timestamp. Want to nest tasks? Just do `now $ working on sub task` and you can easily see the indentation.