But it seems that the abort() method applied to the Process instance or even the cancel() method applied to the associated Task instance, as returned by start() do NOT actuallly terminate the actual subprocess (maybe a "force" option is missing?).
By the time being, I partially overcame the issue using:
sys.cmd('taskkill /f /im '..exe_name)
but in my application I spawn multiple instances of same exe so I need a better way.
Your abort() method, if working, would be fine.
Also, getting an exit code in case of errors when calling start() instead of plain nil would be helpful.