Design rework. Take the lessons learned from the previous version and use them to improve it. lx_op_await() is gone and the error handling design is greatly improved. The tester still works, though that doesn't use any of the error-handling code paths.