A policy action will run completely independently, but it is not sufficient for the client to know it is relevant to the fixlet, it must know it is relevant to the action based upon the fixlet.
If you didn’t take the policy action until recently, then it will take up to it’s gather interval (24 hours by default) for the client to know about it unless it gets the UDP notification or polls for commands.
Once the client knows that there is a new action, it will gather it, and then determine if it should run it, and then immediately run it. If everything is working properly as far as the UDP notifications go, then this whole process should take about 60 seconds max, often as little as 15 seconds in my experience. This should happen independently of the eval loop, unless the client is in the middle of a long relevance evaluation, then it will wait until its interrupt time before stopping evaluation to switch to actions before going back to it’s eval loop.