You could perhaps produce more 'smoking' items. In case that doesn't work, you could also spread them around via dfhack by placing them on the ground around workshop.
For the terrible/average/good alcohols, you can modify raws in a loaded save with dfhack, and support other mods by making the syndrome replacement depend on alcohol value rather than name (each plant booze has separate syndrome named "inebiration"). Though that doesn't make potato wine vodka, for instance.
In regards to gambling: You could mod in an instrument with name set to "Coin" or "Dice". Then dwarves in taverns might Play Coin or Play Dice (or simulate them, if they don't have them. Doesn't really affect stress without hacking it to be more enjoyable, though.
However, workshops aren't really desirable for e.g. smoking. Making smokes a kind of food item might work better (then once dwarf finishes 'eating' have the seed autoimmolate).
Maybe incense could also be done via hives and modded incredibly numerous "bees" only producable in a reaction?
In regards to personality: other than stress propensity, bravery, anxiety, hate propensity and perhaps stoicism/perservance should be considered.
For application; could also consider harder drugs. Dwarves could be made to seek them out with making drugs their preferred food (simulating addiction) and they could also not sate hunger or have other negative effects.
Corpses: Three hack ideas, replanting from suggestion threads:
1) Set dead_dwarf on non-citizen skeletons, teeth, skulls, etc. to false (and corpse_flags.unbutchered to false too, perhaps, or perhaps bone_amount to 0 instead so that dwarves dispose of skeletons).
2) Have appropriate predators such as vultures path to fleshy corpse(bit)s and change any fleshy corpse in same tile as one into a skeletal one.
3) Have appropriate citizens witnessing the death of an invader get positive thought. Maybe stronger one if they're bloodied/injured?
Interacting with pets, friends and family:
Maybe could make No Job dwarves who miss the above and have them in fort and also not working have their default idle area be set to next to the missed, if they can path to it.
By the time they arrive the friend may have danced elsewhere or gone to work, though, but that's life.
For those who need family and don't have any, they could path to a suitable match friend (if they have any of those).
Lacking crafting needs:
Since a dwarf doesn't need to have job enabled to do it (as we know from autolabor), could "just" generate and assign jobs to idle dwarves who have the need. Maybe even not in workshop, but temporary zone or their own room instead.
Similar logic could be applied to need to wanter + plant gathering. Maybe lack of abstract thought and book writing too?
Lacking good thoughts on Siege Operator:
Does the shooting not count as job (for eventful OnJobCompleted)? There's siege-engine plugin for changing aiming, so should be able to make shooter happier too (if only by finding the dwarf in the center of engine when projectile is fired).
Reducing rain impact:
Could make ponchos, raincloaks, umbrellas, etc. When equipped, either the dwarf loves nature(kind of weird) or dfhack zeroes negative recent rain thoughts. Maybe combat (axe skill) umbrellas for mass-assigning people to carry one via woodcutter labour.
It might be possible to have every nature-hating citizen in an outside square without an umbrella head to pathable inside one when it is raining.
Magma:
Dwarves should love floor heating and magma windows, and could make them do so. Though I'm not sure what thought to use for thoughts and preferences.