Okay so apparently the theoretical minimum folks think is 17 cycles. And I've got 18 there in the loop, and 17 doesn't work.
In fact 17 doesn't just not work. 17 results in no LEDs illuminating at all. If the data were being corrupted I should see LEDs illuminating. Since I don't, and I am not sending 0's, it seems that somehow writing to the SPI register a moment before the data has finished sending aborts the transfer. Because if I was even getting the occasional stray 1 in there, I would see the leds at various brightness levels randomly lighting up.
Very strange.