Veja por si mesmo que o wait
builtin não irá esperar por um processo aleatório - somente filhos do shell atual.
#!/bin/bash
sleep 2 &
P=$!
echo sleeping 3 seconds...
sleep 3
echo waiting for $P ...
wait $P
R=$RANDOM
echo waiting for $R ...
wait $R
echo done
$ ./t.sh
sleeping 3 seconds...
waiting for 93208... ## this returns immediately, since that PID is gone
waiting for 31941 ...
./t.sh: line 10: wait: pid 31941 is not a child of this shell
done