It's still damn annoying to have to totally reorganize your traders skills just to get him to go trade.
Even in a fort of 200 dwarves, it would seem silly to me to have a single dwarf dedicated to absolutely nothing but trading year round. He'd be idle most of the time. Besides, even then, it seems like he has to eat and drink himself to bursting, and then take a twelve day nap before he trades almost every time, too.
It would be oh-so-nice to have the ability to change relative job priorities. I actually imagine this could be an extremely valuable ability should it ever be added to the game. Complicated, maybe, but valuable.
Part of the reason why your trader always eats and drinks to bursting and then sleeps for a month is because those tasks are lower priority than working (up to a certain point) but higher priority than trading. Meaning that when your trader is hauling, he gets hungry, thirsty, and tired, but not enough to stop working. Then you suddenly remove all his other jobs (except the ultra-low priority trading) and now he's got free time so he can take care of those other needs, hence the eating, the drinking, and the month-long nap. Once he's done with all of
that he can go trade.
The solution, then is to take him off those other jobs early, or, after you have more than a dozen dwarves so no individual dwarf really is critical to survival (and the crafting of trade goods, just take off all his other jobs permanently. It's not as silly as it sounds to have a full-time trader that doesn't do anything else. For one, you never miss a caravan due to marathon napping, and for another, he can build all all his social skills because he's always chatting it up in the dining hall, so he becomes mayor, who only real job is talking to people with problems - so he's more effective without other jobs anyway.
In anything remotely resembling a mature fort, my biggest problems are always finding enough jobs to keep my idlers under 3 anyway, so having an intentional idler has never affected me much. If you really want to, just assign him to a job that only comes up occasionally.