Use Async.race in serverCLI start-all to fix initialisation bug

This commit uses the `race` function from the async library to fix a bug
where exceptions raised from the server async wouldn't be caught by the
top-level code.

The bug was stemming from the fact that `runAllWorkers` is **blocking**,
despite its usage of `forConcurrently_`. Therefore we were never
actually running the `wait` function below, but rather we were hanging
waiting on the result of the first function.

As a result the server could die but the workers could keep the main
thread alive, causing the bug we just saw as part of #463.
4 jobs for adinapoli/issue-463 in 44 minutes and 16 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Cabal
passed #17927
cabal

00:19:08

 
  Stack
passed #17928
stack

00:03:25

 
  Bench
manual #17929
allowed to fail manual
bench
 
  Test
passed #17930
test

00:21:42