Here's a simple reproducer for the same problem, without the context of IDLE. As far as I understand, what IDLE's spawn and then kill process are doing is:
import os
from signal import SIGTERM
pid = os.spawnv(os.P_NOWAIT, "notepad.exe", ['notepad.exe'])
print('pid = %s, SIGTERM = %s' % (pid, SIGTERM))
os.kill(pid, SIGTERM)
Running this, the notepad.exe subprocess stays alive after the script exits, and I get the error:
pid = 1868, SIGTERM = 15
Traceback (most recent call last):
File "k.py", line 6, in <module>
os.kill(pid, SIGTERM)
WindowsError: [Error 87] The parameter is incorrect