First post on the forums, been lurking for a while though, hi all
I like to take a bit of a different approach to handling idle dwarves. At the start of a fort, I'm meticulous about having everyone working at all times (no hauling), even if its enabling planting/gathering. If any of them become idle, and I don't need the tasks they're set to do to be performed, I assign them additional labours that are needed. If (any only if) there is nothing else to do, I set them mining to help dig out the fortress faster. This continues after the first wave of migrants (usually taking me to 14 or 15 dwarves), perhaps ending up with a couple of dedicated haulers with stone set to ignore. This means they'll be consolidating wood for all of the beds I'm about to make.
Once the population numbers rise, I use Dwarf Therapist to choose the dwarf(s) with the highest skill for each job, trying to limit each dwarf to one labour set. If supplies are plentiful I set about skilling them up on repeat. I also set all of their custom profession names to the enabled skill, which allows me to quickly {u} and see what any idlers should be doing.
My haulers are the ones that have 99% of the strange moods, so I make sure that they're given skills (usually a crafting one) to get up enough so I get a free legendary crafter once they've completed the object.
At this point (60+ dwarves) I'll generally have some idlers. After all, my cheesemaker doesn't always have milk etc, and as such I turn on mining for any dwarves who have enough of whatever they produce stockpiled. I'm always digging, giving my smelters plenty of ores to melt down.