(This doesn't seem to be documented specifically anywhwere, but it's implicit in the way bash's job control works.)
E.g. sleep 2; echo it works
Writing my first Go code was easier than packaging ntfy for Windows, FWIW.
There are similar problems with Ruby when people want to distribute executables. I remember I googled a solution that made a friend of mine happy (he had to deploy on multiple Windows machines, I don't remember what I suggested him to do) but still it's the wrong way to go. If creating a single executable is a hard requirement then yes, they are the wrong languages to solve your problem.
Packaging Python on Windows has always been tricky.
https://github.com/larsch/ocra is the Ruby equivalent.
If the software is open source, you can still change anything with your text editor and recompile the executable, usually with a single command (go build, IIRC.) Additionally, you can keep all the executables for all your versions and modifications.
Try to do that with Python, when the change you need is somewhere deep inside a library. At best you'll spend hours setting up multiple Virtualenvs; at worst it will just be impossible. Case in point, you can't use a Virtualenv for ntfy on OS X of you want desktop notifications (for whatever reason.)
Python, Ruby, and Node are becoming less popular for a reason.
Ntfy does many of these things too, for example A coworker had suggested the PID option so it has that too :)
I mostly use the shell-integration that automatically sends notifications for commands taking longer than 10 seconds (if the terminal isn't focused).