Although through a combination of iteration, experimentation, frustration, randomly inserting and removing sigils, and, most crucially, thinking, I’ve got it down to 0.03s/M iterations. Which makes it a lot easier to gather more data for sampling.
Does seem to be biasing on the low side though - averaging about 12M runs for [1, 2, 3, 4, 5, 6] to appear in 4800 samples.