Listening at 0.0.0.0 should be equal to listening at all available IPv4 addresses at once (127.0.0.1, 172.21.50.61, maybe something else). So you are right.
I don’t know.
Probably either because of some mistake with testing (and it actually works), or some other Linux protection mechanism prevents it from working (have no idea which one exactly).
In config, which works correctly, you set RunAsDaemon 1, but in non-working config this line is missing, maybe that’s the reason?