Not sure if it helps, but I was thinking about what you're asking, specifically "create a quaternion to rotate this model" etc..
I think the way it's done in SC2 is quite simple. There are two ways to attack a unit or building... either by air or by ground.
All the ground attacks on a shield is animated at the same height. So it's essentially just a pivoted animation, duplicated depending on all the angles it's being attacked from. Note that a single marine attacking a nexus (really low dps), the shield damage is barely visible, so it's almost transparent so that if a lot of units attack from the same side, it won't just become an opaque block of bad graphics. This sort of proves that it's duplicated for every single hit.
Same with air attacks, except the animation has a slightly bigger "surface area", but it still pivots horizontally around the unit.
Air units are the same, except flipped vertically (they can't be attacked from the top, but from the bottom instead).
So SC2 is quite 2d-oriented with this problem. If your game is more flexible in the Z-dimension then you may need a different solution.
Edit:
I also thought of a different way, instead of duplicating the animation, you have a logarithmic opacity setting... so that the more damage is done, the more opaque it is, but being logarithmic it will reach a point where you won't see much difference if you add MORE damage. This way you can also prevent a big block of bad graphics.