> It also doesn't seem optimal to enforce crossing a thread boundary here

By async this does not mean crossing thread boundaries. If the producer and consumer are on the same thread this can be achieved via trampolining for example.

I think #46 is a good discussion to continue on this. I won't update this text for now as it feels like it needs further clarification.