You are getting into how hardware is connected on a specific computer, make and model, and technology at the time it was made.
Now you are getting into what actual boot process operations are being done in the specific Puppy version.
How the boot process is coded to work in the specific Puppy version.
This stuff as developed, evolved, changed, tweaked ,bug fixed, etc..... over the years.
What I can offer, from booting on different computers, and booting different versions of Puppy.
You just try stuff and see what works.
Fossapup64 9.5 has had this boot issue, from day one, on some computers, but not all computers.
Sometimes not being able to find the SFS files and continue booting.
For external type drives, using pmedia=usbflash seems to usually fix this issue. (external drives are usually USB connected)
An SD card is a type of external drive and works basically the same as a USB flash drive to store data.
Anyway pmedia=usbflash, telling the boot process to do specific things, seems to be very good code, with little issues.
If the install is not on a CD, pmedia=cd on some computers, does not work.
Again a lot of tweaking and code changes, have been done to the boot processes, that are not in Fossapup64 9.5.
Some of the needed changes were found, by what was going on, trying to boot Fossapup64 9.5.
Using UUID to identify the partition the Puppy files are on was one big help to the boot process.
That has to be the specific partition.
Because the partition is given that UUID and it is the only one that has that specific UUID. It never changes.