I don't know EXACTLY (I mean the code inside a game) how it works, so below I give my analysis Maybe this will help.
At first you, devs, have to decide if fear has to change action value to 0 for all units (no matter if they have 1 action per turn, 2+ actions by default and/or because of "double strike effect"), or to decrease it with -1. First option is much harder to code right because of many possibilities with effects' combinations (it's even worse if somebody changes "actions" value in map editor for missions).
I could describe tens of possible combinations of Powers/effects, but let's focus on this situation:
*Atack per turn = APT to make it shorter
WHAT WE HAVE NOW (speculation mode)
Halberdier. Nice guy, but he doesn't like his job. He can attack once per turn. Priest comes nearby and strikes him twice with his stab to motivate him. +1 APT, so now APT=2. But then the mummy comes and attack our motivated halberdier with "Fear". APT=0 (but it isn't APT=2-2=0, just APT=0, for programmer this is a huge difference: you can set completely new value or modify existing one). Then halberdier wants to attack, but "Double strike" motivation effect ends and APT=0-1=-1 (Another reality or something). But the mummy is killed by halberdier's friends swordsman, so "fear" disappeares soon and isn't refreshed. APT=-1+1=0.
You see? It this case, because of "fear", APT was decreased with -2 (in practice, because in technical view it was reseted to 0), and then was increased with +1 only.
POSSIBLY SOLUTION:
"Fear" should a.l.w.a.y.s. decrease APT with -1, so for example quick archer affected with this debuff should be able to shoot once (APT=2(base value) -1=1).
Or "Fear" can reset APT to 0 in all cases, but the value which was used to lower APT to 0 has to be stored in game memory and added after eliminating debuff.
..........
Yeah, it sounds complicated. You know, #gamedev_stuff