DO NOT MERGE [2.2] small writes batch force optimization

`next` can be just a volatile field if you have a sentinel end value for the stack, assign `next` after you've put the ThreadLink into the stack, and spin on the read of `next` until it's non-null.