Progress bar and stop/cancel button (that actually works) should be standard on every bit of software; but it's as rare as unicorn teeth.
Basically every action should be wrapped in a progress bar type widget . The widget should have a timer setting so that it doesn't actually appear until ~ 0.3sec after the action starts, so that quick actions are.... invisible? quiet? whatever. For actions that will take an unknown or indeterminable time, the progress bar can do something like a random speckle patten - anything that says the system is still alive and working. The (very ancient) PERT workstations that ICL built in the early 80s used a similar idea . Acorn's almost as ancient RISC OS UI had an OS call (making it trivial for any app to be well behaved) to do the timed-busy-indicator. Any app that has an undo system should be able to cancel at any point.
What, me ranting about UI design again? Horrors.