It seems you are calling “PullTrigger” constantly while the trigger is held.
Thus you need to block the the firing ability of SemiAuto weapons if you press the trigger and it failed to fire (because you were in Delay the moment you pressed) until you “ReleaseTrigger”.