Make a co routine that spawns the actual calculation event, see if that fixes it.
For example, make DamagedEvent spawn a method DamagedEventCo, that is suspendable so the calculation occurs on a different thread, then do your handling in the DamageEventCo method instead