Am I right in assuming that it is evaluating on page load, when the interaction state is 'Incoming' and so doesn't meet my condition and then ends the custom action?
Or is there something else that I have missed?
If I am right; Is there a way to trigger an evaluation on a variable change?
e.g.: On Scripter.Interaction State change, THEN run Custom Action?
"Am I right in assuming that it is evaluating on page load, when the interaction state is 'Incoming' and so doesn't meet my condition and then ends the custom action?"
That's correct. The script is evaluated when the page loads (when the interaction is in alerting).
"If I am right; Is there a way to trigger an evaluation on a variable change?"
Unfortunately no, it is not possible at this time (no "internal trigger" available on variable/Interaction State change).
What some are doing is to use a Delay function to postpone the execution of the logic. Of course it won't be done exactly at the time the interaction is answered.
You can find some explanations in this other post and on the Genesys Cloud community forum.
You can also request a new feature and share your use case at https://genesyscloud.ideas.aha.io/ or vote for an existing idea (as there is probably one already for this use case).