Improve handling of forked processes in tests.

Closes #4277
- Increase the wait time for forked processes to spin up.
- If we give up on waiting for a forked process, send it a kill signal so if it comes alive later it doesn't sit in the
  background forever.
- Fail fast if test setup fails instead of waiting for the timeout.