Yesterday I thought of a technique which has become a real time-saver for me. (I'm sure I'm not the first person to think of this; I remember reading something similar in Time Management for System Administrators.)
You can get notification from any long-running task on the command line like this:
do_my_task; make_a_sound
For example, using Rake on a Mac:
rake db:reseed; say 'done'
Now I start rebuilding the database and move to another window, knowing that I'll get audible notification when that task is complete.