Are you using subprocess anywhere (possibly indirectly through a dependency)? That’s the only case I know of where --windowed leads to breakages. It’s also worth verifying that pythonw mysoft.py works.
You can get around it by explicitly setting unused pipes to subprocess.DEVNULL rather than letting them default to inheriting an invalid pipe. So if you were using:
from subprocess import run, PIPE
run(["echo", "hello"], stdout=PIPE)
you should explicitly redirect the unused stdin and stderr to NULL:
from subprocess import run, PIPE, DEVNULL
run(["echo", "hello"], stdout=PIPE, stdin=DEVNULL, stderr=DEVNULL)