The extra interpreter spawn ran on every platform before run_completion's Popen. On Windows it went through subprocess.run first, which the taskkill interrupt tests patch to assert only the completion child exists, so all three failed. install_before_lock is a no-op off Linux anyway; skip the spawn there.