Break infinite recursion when condition is asynchronous

The exit status of asynchronous commands is always 0,
thus the conditional commands get triggered. I aliased
the triggered commands as false() to break the recursion.
Add examples to illustrate while loops and until loops