I don't like idlers, myself[1], and my "soak" jobs for those that would otherwise idle are usually construction builders[2] or stone haulers[3]. I start off by making my (usually, straight from embark) two miners dig-only in the job department, everyone else having hauling side-lines, but very quickly get to the status that other professionals are haulage-less in the job market (whatever other secondary jobs they might share with their primary).
It's not unknown that I find myself with two miners mining, one stone crafter crafting, one farmer farming, one architect designing, one mechanic tinkering and a partridge in a pear tree the only otherwise free dwarf (usually this is the designated noble[4]) being the hauler... and then along comes the first immigration wave.
<hypothetical>Woohoo! Well, that one's a decent gem-cutter, so maybe I'll set him to get more trade-stuff by creating cut gems. That one's got better mechanics than my mechanic, so I can set the other back to just be mason again (and extend the compound walls, maybe) and get the new one to make better mechanisms. Those two are half-hearted farmers... I'll actually not bother with them being that. These three have come with archery skills, so that's the start of my military, along with the speardwarf-wannabee, and as soon as the ex-mechanic mason gets a rack or stand created and the architect gets a target placed at the end of my range I'll get them training, but those other five I'll leave to hauling and dumping and wall-building. Now perhaps my accounts can be looked at more closely, and the new "make a bed" jobs can be more assured to be processed, by taking the hauling jobs away from the Designated Noble.</hypothetical>
And so it continues. The more dwarves there are to do the work, the more work I give them. In fact I always find myself with more things needing doing than are being done (in the hauling department, and in constructing from convenient hauled-to stockpiles). When I want my magmaduct walls smoothed (prior to letting the magma in!) or the wood brought in from where it's been chopped down outside, or the butcher's shop emptied of the non-edible remains, or the new water-cistern's rubble dumping, or beds placed in the newly-dug areas of the accommodation block or would like a new gantry (with fortifications lining it) built out over my main entrance I have to decide what other thing doesn't need hauling/constructing and either remove the furniture/whatever hauling job(s) from a select few or make use of the LIFO nature of the construction queue to re-prioritise the newer development in the fabric of my surface structure.
Efficient? Well, everyone's working, but my main battle is in not having jobs being unserviced, not in making work for idlers. So I'm over the top of the curve of optimality and probably inefficient in the other direction. But I normally only notice it at the individual dwarf level when my one and only expert armourer is being rather reluctant to make those copper breastplates (or whatever) that he really should have completed by now.
[1] I design my defences so that lever-pulling is not a "do now... Now... Now damnit!" job.
[2] I'm always extending or adding to my surface compound.
[3] But, even more than footnote-2, I'm always digging out far more caverns and tunnels underground. These either need cleaning of rubble for my aesthetic or practical needs, or are the source of the rock and ore being used elsewhere, and so I set up stockpiles chains to move everything closer to the appropriate building/crafting/smelting sites.
[4] Manager (still to get accounts up to full spec), Broker-in-waiting, Expedition Leader (hopefully with nobody to console, yet).