Well, unfortunately, I have to take this back. I’ve encountered several scenarios where a piston is executed with arguments followed by being triggered by other events and $args still contains the parameters from the previous call. E.g., I wrote a piston that, after being executed with arguments, causes the piston to run again after a period of time. When that time event happens, even though the log clearly shows the event was time, $args still has the parameters from the previous run. Worse, $currentEvent… still has all the values from the previous run and there appears to be absolutely no way to tell the difference from within the piston.
So, bottom line, you may get lucky, but you’ll probably be better off not mixing the two. I.e., a piston that is called (either via another piston with the execute action, or via some external method using the piston’s URL) should not also subscribe to and react to other events.
To me, this is unfortunate, because it would really be nice sometimes to keep the processing of these related events in the same piston.