Is there any way to have a badge appear on the Terminal icon in the Dock when a command completes?
As of Mac OS X 10.7 Lion, Terminal has exactly this feature.

If you emit a bell (BEL, Control-G) in a background tab or window, the Terminal application Dock icon will show a badge with the number of “unread” bells



and a bell icon is displayed in the tab of the terminal



(If there is only one tab in the window, choose View > Show Tab Bar to see the tab, which also displays other status information.)

This also applies to minimized windows.

When you bring the window to the front or select the background tab, the bell indicator is removed from the tab and the badge count goes down.