WinJobster is a library, which can start processes in a Windows job, monitor their state (dead or alive) and kill them all at once, including their children, children of their children... you know where I'm going...
pip install WinJobster
import WinJobster
cmdline = "notepad.exe" # Path to any app, which can also start other app
job = WinJobster.Job()
print(job.is_alive) # False, no alive processes found
job.start_process(cmdline)
print(job.is_alive) # True, 1 alive process found
job.terminate() # Will close original app and everything which was started by it
job.start_process
' first argument can be path, or any string interpreted as console input (Windows will expand %PATH% values for you)