A big part of the flash time is building the system.img.raw file (a complete file system is created as system.img, renamed to system.img.raw, and a “sparse”/compressed version is written to system.img). If you already have this file, then you can flash reusing the existing file. This will significantly reduce your time to flash. This is the “-r” option to flash.sh.
System.img.raw (or a clone) can be loopback mounted and edited. This file can be used directly by naming it system.img (originally there was no sparse file variant), but the sparse version takes less time to pass through the USB connector (the raw image is roughly 15GB, the compressed/raw version is around 2GB).
Note that the image created during flash and a clone image from an existing install can be used interchangeably. Even if the images are basically the same thing the clone can be desirable since you can do all of the apt-get upgrades and optional settings first, and then clone…the clone image will be the same as an updated system.img.raw. The raw image can be used to create a new sparse image if the time to do this makes up for the USB download time.
For your use-case, can an exactly matching image be used for all flashes? Or will you need to edit something each time (such as a serial number or IP address)?
FYI, I don’t think the flash program is capable of flashing more than one Jetson at a time…perhaps there is an adjustment which could identify specific Jetsons among a group of them to pick a particular Jetson, but I don’t know what that would be.