Add in sendWorkException that we'd been missing
Refactor error handling to be a bit clearer
Add docs on observed semantics