This seems more like a race condition, see:
$ f() { ( sleep 0.1; exit 13 ) & "$@"; wait -n; echo $?; } $ $ f sleep 0.0 [1] 30612 [1]+ Exit 13 ( sleep 0.1; exit 13 ) 13 $ f sleep 0.2 [1] 30617 [1]+ Exit 13 ( sleep 0.1; exit 13 ) 127
This seems more like a race condition, see:
$ f() { ( sleep 0.1; exit 13 ) & "$@"; wait -n; echo $?; } $ $ f sleep 0.0 [1] 30612 [1]+ Exit 13 ( sleep 0.1; exit 13 ) 13 $ f sleep 0.2 [1] 30617 [1]+ Exit 13 ( sleep 0.1; exit 13 ) 127