So, reading some good novels, playing vidya, and eating like a king for weeks has no effect on one’s moral an hour after any of those individual actions. Likewise, wading through a school will hit you pretty hard, but only for a few hours.
Meanwhile slaying a man can last for days.
Why not take a [abbr=big]chunk[/abbr] off the immediate morale gain, and institute a much longer-lasting, but much lower & lower-capped morale gain/loss for these actions.
So less downing a chocolate bar whenever you want to get over your murders & work on the car for 20 minutes, more waking up, toking/gettingbuzzed, reading another chapter of your favorite book & having a good breakfast to carry you through the day & forget about that pediatrics wing of the zed-hospital for a while. (longer than an hour at least)
The big part of implementing this isn’t adding values for everything (though that would certainly play a part), but is rather the creation and implementation of a secondary morale system (since short morale bonuses would still exist, just be slightly smaller) that would run alongside the current one.