As I wrote in the bottom of that KB Article, you should use a java wrapper to invoke any batch, shell script, or executable. Also note that calling powershell.exe directly does not work as mentioned in the KB Article.
PX Policies should not invoke scripts (i.e. .bat, .cmd) directly but instead should implement a java wrapper that invokes those scripts. When PX Policies invoke an executable or the java wrapper the thread will wait for completion whereas when PX Policies invoke a script the thread will spawn a new cmd.exe and return right away and the new cmd.exe would execute the script. The PX event will show complete regardless of whether the OS was even able to spawn the new cmd.exe which could happen under load. Using the above explained approach could be used to launch any scripts that need to be executed as well.