I dream of a computer interface where I can branch entire workspaces with a key press and leave a brief note to myself about what I'm starting now, whether it's a subtask of the current task or an interruption from elsewhere. It would assemble a call graph and I'd know where to return to when wrapping up each little task.
This could probably be done with Emacs and Git, but I suspect I'd get lost in trying to fix rough edges with existing layout/workspace libraries before finishing it.