All of this is off the top of my head, some from reading the Wiki, most from experience. I say this not as the finished article, but as a way to get more experienced players than me to check my work.
Here's a list of ways strange moods fail, what to try when they do, and hopefully a simple list of rules to follow so that you never lose another dwarf to a strange mood.
The most common reason they fail is you don't have the exact thing they are looking for. So far as I know they will never care which rock or wood you use, but they will be fussy about the exact metal, or which kind of cloth, or demand a shell in a biome where you can't possibly get one. You can tell what they need by looking at them in the various ways from Dwarf Fortress, up to and including just checking in Therapist.
I've had it happen where I did have all the things they wanted, but some of them were far away from the workshop, and the dwarf didn't seem to see them or try to get them. I moved some of them to a stockpile very close by and it worked without further intervention.
Sometimes they get stuck. Some kind of conflict, I don't know. But they start bringing things to a workshop, then stop. If you investigate what they are getting, and you have what they need, very often you can get them started again by tearing down their workshop and rebuilding it on the spot. They might start again at that workshop with the same materials or move over and start gathering again. If you can get them moving this seems to work and they complete the mood successfully more times than not.
Here's the list of things it can get fussy about. Cloth - needs to be wool, plant or silk. Specifically. I try to get around this one by embarking with one or two of each kind of string so when this comes up I can weave it into cloth on an emergency basis. Then try to trade for some or make some of each once the fort is up and running.
Metal, they may want an exact type of metal. In my forts I only make iron, steel, gold, silver, maybe copper but probably not. So just make sure to have some on hand. If you ever buy metals from traders and then use them up, your strange mood guy might want that exact type.
Gems, any gems will do. Bones, usually any will do, but they have to exist. If you get some the strange mood dwarf will usually snap into action. If they are in a murderous mood they are going to kill some one or something to get the bones they need, but that only happens if they are really, really unhappy.
A shell. This is the worst one. As far as I know, there are some biomes where shelled creatures do not exist. You can't buy one from traders as food it's already cleaned. I suppose in theory the traders could bring a pond turtle or snail of some kind, but in time to save you strange mood guy is highly unlikely.
In many biomes you can create pond turtle territory just by digging along a pond or river bank and making that a fishing area. I've done this in several areas as well as making a well a fishing zone in hopes of getting a shell in time to save a dwarf. It didn't work in time. Frustratingly, these same zones did produce pond turtles later.
So my advice on the shell is, if it comes up, just cheat. You might be able to get one "legit" or not, but I think this requirement is too mean, especially if you're in a desert biome or any other one where a shell is literally impossible to get. I like to use DF hack to summon a dead one and have or set up a fishery workshop to clean the shell off of it. The command to do that on DF Hack is, if I remember right spawnunit pond turtle M. You have to specify a sex of some kind or again it just doesn't work.
The only problem is if you summon a live one they just get away. You can summon them in dead, but I've forgotten how. Someone out there must know the precise command to give DF hack, please let me know.
To sum up:
You can avoid failing a strange mood by always having some rock, some wood, at least one each of the three different kinds of cloth. Limit how many metals you have in the fort and always have some of any kind you ever made or bought. Have some gems around. If they demand a shell, just cheat to get one instantly. And if they get stuck, you can turn them off and on again often by tearing down their workshop and rebuilding it on the spot.
And if all else fails, you can summon a squad of your military to stand by them in case they go nuts and start attacking people.