Send errors asynchronously

The error reporting should never block the client's application. The errors should go straight to a queue and be picked up by a worker thread later. Maybe we should also send these errors in batches.