Well, i would make it a an array-based buff.
You would require to make two seperate buffs (At best as abilities in disabled spellbooks). The first one for the stagger buff duration (in which the damage is reduced) and the other one as indicator how long the unit still takes damage (Else if the first one runs out the damage that needs to tick out would also be removed).
The first one can be done with a hastable, a unit group with a periodic trigger to get the timer down and a DDS.
The second one is more tricky, because we got more than 1 instance of damge. Thus this needs to be a stacking buff. You could make it into a hashtable, but you would require a complete hashtable for this buff and i personally like to avoid this. (I like to trigger multiple buffs into a single hashtable, but for stacking buffs thats hsrdly possible, since you cant define special children for the buff, since they can go ti indefinitly amounts (well, technically only to like 8155 or something like this) ).
So i would use an array for this. Every point in the array would be advocated to a damage instance with its own 10 sec duration. This wpuld even make it able to make the whole thing MUI.
When i get back tomorrow at my PC i could give it a try to code it for you
Edit: you need also to ask yourself: Do you want to have the stagger damage be reduced twice? Since the deal damage trigger does affect armor/magic resist and fires other DDS triggers you need asking yoursekf if you want to make it just pure life reduction or damage. For example you could still ket DDS systens fire when you got abilities which interact with DPS buffs for synergies. Then you would need to toggle a bolean before furing the damage action on which the stagger buff gets to know that you just dealed staggered damage, but other triggers can still fire.