I've had a brewer die of dehydration because he's too busy making beer to drink any of it - that is just dumb.
And arguably un-dwarfy. Nothing is more important than a nice beer break!
Really, I'm going to throw my vote in for the non-option of something completely different than either purely reactive method. Before a dwarf takes on a task, it should take an extra few ticks to consider the following things:
1) How far away is the job from my/a bed and my/a dining room (we'll let dwarves assume food and drink will be available near any dining room)?
2) How far away is the job from where I am now?
3) How long will the job take to complete, including round trip time?
4) What's my current state of thirst/hunger/fatigue and what will it be at the soonest I can assuage it if I take this job?
5) If I'm going to be hungry/thirsty soon, consider grabbing a bite/drink before leaving for the job or (if enabled) taking a sack lunch or wineskin along with me.
6) If I'm going to be too tired to do this and get back to my/a room, is it reasonably possible to do so? If no, plan to sleep at the job site. [Hmm, maybe Clothiers should be able to craft blankets or bedrolls that will reduce the unpleasantness of sleeping on the ground. If added, a dwarf sent to a distant woodcutting or construction site would now have the forethought to bring one along...] If yes, check other jobs for something more reasonable and put this off until morning.
It shouldn't need to be terribly complex logic. Just let the dwarf project themselves forward in time to the conclusion of the task and, if their state would at that point be dire given the proximity of bed/food/drink, either take precautions or put off this particular task until later.