Allow async commands to run forever without watching

To make async: 0 actually work requires some logic changes because
currently a value of 0 for async_seconds means run synchronously.

The main change here is to not check whether to kill the child
process and let it live forever. The parent processes do remain in
place.

However, an alternative is daemonize in bash with a simple script
of the form and not run it asynchronously at all
```
setsid command args &
disown !$
```