Returning an exit code from a task
Currently the task API doesn't seem to support exit codes. If a task encounters an error it can:

- `return`: this will abort, but the exit code of running `nimble myTask` will be 0.
- raise an exception: Sets a non-zero exit code, but the traceback is maybe not what we want to show to the user, after having printed an error message already.
- `quit(exitCode)`: Sets a non-zero exit code, but for some reason Nimble seems to issue a warning "quit called". This warning doesn't make sense from a user perspective, because the task has already printed a meaningful error message and simply wants to abort. The "quit called" warning is out of place.

Maybe the task API could be extended so that it supports `return <int>` and Nimble forwards the code directly to `quit` without injecting a warning?