I've been mulling over ways to address this for a while now and I think there's two ways to go.
1. Give me a list of all the animals in the game and let me check off "run away from these" or not.
I don't like this method. It's..... overly painful and requires me to babysit my dwarves too much. I don't want to be the scary guy making sure they're on their best behavior. I just want to let them go be free.
2. ESCORTS! And not the kind in high heels, but the military kind. This would go along with all the other improvements that need be made to the military system(guard posts etc). What you would do is set a zone and give it the "escort" characteristic. You then set the number escorts needed in that area and link a military unit that is set to "escort" there. X number of soldiers from that unit will then proceed to "escort" dwarves in that zone by standing around and attacking creatures that get near the dwarves there. Dwarves will then ignore most threats while in that region (Wild animals that are not directly attacking.) However, when the cougar bites the mason, the rest of the civilians will decide "Time to get cover" and book it until the coungar is no longer in the zone. Likewise if "hostile" enemies get within normal range of the dwarves they will flee as normal. Yes, this would expose dwarves more by having them stand around until the attack hit, but the obvious trade off is building that bridge across the chasm finally.
Similar work with this could be done by having patrol routes produce similar "zones" around them so if you have a unit patrol from the gate to the river then dwarves will treat that unit's patrol route as safe. Patrolling like this would likely require a # of active and inactive dwarves in the unit.
All dwarves in that unit not actively engaged in escorting or patrolling will be treated as standing down until they come up in the rotation.