Enable and disable Controls rapidly like this can get very messy! Espcialy in combat!
If you are going to do this you had better also add this:
Menumode
EnableControl 7
let check := 0
end
And DONOT use any If check == whatever in the menu block!
I cannot tell you exactly why, it is just part of the inefficiency of ruing scripts in the game (sometimes they do not fire correctly EVERY frame)
but I will bet you a years salary you will eventually have issue where your controls get mysteriously locked up when interacting with other mods.
So this HARD reset in the menu block is necessary to easy get back to normal when this event happens.
I have to wonder why upon reading the last part of that I thought of a stubby cylinder-like white and blue robot playing a message in which a white-gowned lady said that... ah crap, such long sentences are never funny.
To the OP: well, you've come with a good enough solution by placing restrictions on yourself, I don't believe you need a mod then. But if you do, you could make a little OBSE mod to automate that:
int checkBegin GameModeIf PlayerRef.IsBlockingIf check == 0DisableControl 7let check := 1EndIfElseIf checkEnableControl 7let check := 0EndIfEnd