One of the biggest annoyances in DF is that dwarves prefer to haul rather than do real work.
Logically, hauling should be low priority by default. All dwarves can haul, but most other work can only be done by a subset of the dwarves -- often only one in a starting fort. But hauling tends to outcompete other things, probably because hauling tasks are split into multiple jobs. Hauling has multiple raffle tickets, real work just one.
Many people have suggested priority schemes to resolve this -- it's #5 on the Eternal Suggestions list. But implementing a priority interface will take time. (Perhaps #1 "Improved Hauling" might also be related to it, although it's hard to tell because #1 is overbroadly written. I mean really, "blah, blah, blah, all goes here" is just asking to be killed like Underground Diversity was.)
Rather, to quickly lance the problem at hand, I suggest that the code be changed so that, before accepting a hauling task, a dwarf checks to see if he has anything better to do, and if so, does the other thing forthwith.
This would require no UI work, but would produce a massive drop in DF-player blood pressure.
It doesn't solve everything -- there's still the issue of hauling tasks competing with each other. But it would make such a difference and doesn't preclude later improvements.