A big shout-out to David Cassell on this topic. His 2007 "Don't Be Loopy" SGF paper really changed my thinking on the best ways to scale up this kind of work; previously I'd written my fair share (and then some) of "invoke all the procs over and over and over and over" macros to automate this kind of stuff. That paper's abstract has to be one of the best I've seen:

ABSTRACT
The most common way that people do simulations and re-sampling plans in SAS® is, in fact, the slow and awkward
way. People tend to think in terms of a huge macro loop wrapped around a piece of SAS code, with additional
chunks of code to get the outputs of interest and then to weld together the pieces from each iteration. But SAS is
designed to work with by-processing, so there is a better way. A faster way. This paper will show a simpler way to
perform bootstrapping, jackknifing, cross-validation, and simulations from established populations. It is simpler and
more efficient to get SAS to build all the iterations in one long SAS data set, then use by-processing to do all the
computations at once. This lets us use SAS features to gather automatically the information from all the iterations,
for simpler computations afterward.

Thanks for bringing together information to create an up-to-date resource on bootstrapping in SAS.