I was thinking about morale systems (particularly Domains at War's) in the shower this evening and it occurred to me that the primary culprits in terms of lag and friction from morale are table lookups and adding situational modifiers. I don't have a solution to situational modifiers yet, but one solution to the table lookups problem would be to use a deck of cards with the same probability distribution as 2d6. Each card, in addition to its face value, has a small, basically pre-calculated table, to the effect of "if the checking unit's morale is +3 or better, it rallies. 0-+2, stands firm..." and on down the list. This removes the table lookup. Depending on how often you reshuffle drawn morale cards back into the deck, it could speed things up with multiple draws per turn. This would drive the result towards the mean (in that once you've drawn one extreme, your odds of that extreme again are low or nil until reshuffle), but that might be acceptable. You could do the same thing for shock, too - this would remove all uses of the d6 from DaW (I think?) and then it could be run on pure d20+cards.
I do not yet have a solution to the conditional modifiers problem.