I don’t like checking for things on tick if avoidable and this seemed like a good candidate to try doing slightly differently. Instead I bundled the bool value assignment into the perception update, and it seems to do the trick.
The only revision I may want to do is to have them switch out of the aiming condition when they go back to patrolling and not when they lose sight of me (perception event change). As it stands they seem a little too quick to give up aiming. Otherwise I like this implementation!