Most dirty hits can be categorized into one or two "types".
Whether it be a headshot, a late hit, a hit from behind, a knee... You can pretty much group them all into of of a few groups.
In addition, Shanahan as the suspension guy has been as woefully inadequate as his predecessor. There clearly needs to be some sort of concrete way to determine who is suspended and for how long, without bias creeping in.
Why not use a chart like some insurance companies use for injury?
Intentional Head shot: 5 games.
Kneeing: 3 games.
Hit From Behind: 3 games.
Excessively late hit/hitting a player without the puck: 1 game.
Excessive Cross Check: 1 game.
Excessive Charge: 1 game.
Excessive Slash: 1 game.
Repeat offender: # of games X # of offense. (i.e. 5 games for a headshot, X 2 for second offence = 10 games.)
If a situation arises where two infractions exist on the same play, the more severe infraction is punished. For example, a player delivers a late hit which is also a headshot, he is penalized for the headshot = 5 games.
Then if you run into a situation where something like a groin kick happens which is too rare to be included, let the commissioner dish out punishment a la the NFL.
There really doesn't need to be a "concrete way" to determine how long players should be suspended for. Every incident is different - be it the player involved, the force of the hit/slash/whatever, the circumstances under which the play evolved to get to the point that a suspension needs to be levied.
Your way assumes that every headshot, every slash, every hit from behind, is identical. And that's silly. I'm not going to suggest that Shanahan's way is ideal, but this certainly isn't.