channels: fix memory ordering violation in iterate (#52407)
Channel `iterate` calls might miss trailing items without this patch. I
have not seen proof of this reaching a failure, but we do appear to be
missing this ordering specification in visual review.
Should not make a difference to generated code on x86, which already has
TSO guaranteed, but may alter optimizations and other CPUs with weaker
memory orderings.