It's not a good loop, in either result from the compare it will return to doing the raycast on the next frame before it really has enough time to properly react to what its supposed to do in that state.
So its basically doing a raycast, then if it hits something it will store the object.
Then it will compare that to a player tag.
If true, it goes into a chase state with look at/move towards and on the next frame immediately leaves the state to recycle the loop.
If false, it just recycles the loop, just going in circles instead of doing something intuitive.
If you didn't have the next frame event actions in there then it would be throwing 1000+ loop errors regularly and thats the sure sign of a bad loop.
I would make an FSM that does nothing but raycast, then mirror that data over to the other FSM which reacts to that data. This way you have two simultaneous FSMs doing different things but in parallel. When you do this you'll quickly start to see the way the ai should be structured and how you need to segment it and why the above system isnt working.
This might be useful reference material. I made an update on my flight AI last night and explained a little bit about the segmentation.