I have spent weeks staring at and babysitting my WDs. You do not want it to spam SH. You want this conserved and not spammed on cooldown, otherwise you will end up with 1 or 0 stacks all of the time. I know, I modded the .cs file and tested it for hours...
You want for it to find a group that will give you as many stacks as possible (up to 5 normally, 10 with Sacred Harvester), move to cluster, cast Soul Harvest. Then you want it to wait up to 30 seconds or until a mob of equal size or larger than your current stacks is present, then SH again. This is optimal when using a bot.
Even having it cast every 5 seconds when Languish dies off is problematic with the cooldown.
It's bad for a pet build because the pet build is designed to stay away from enemies. You dont want it to run into an affix to get a SH when you already have max stacks for 15 more seconds, do you? Or be in avoidance mode, kiting away, then cast it when no enemies are around?
Spamming it also can interrupt other things you're doing, which is crucial for anyone using a firebat build as you want it to stand and channel to get to 850% damage.
@Pugger,
I wouldn't use a macros program to click that button. It's can interrupt the bot or create issues based on when it's choosing to cast. I bet half the time it casts when you're between enemies, which causes you to lose any stacks that you already have up.