Could you explain why memory appends need to be async too (and thus also block when the async queue is full)?