So answered my own question.
@fzabkar helped partially, so I'll give him credit. I was looking for how I identify where the drive is on the motherboard and in the add-on slot. Pretty much the same way you do in spinning drives. It takes advanced planning, but there is no physical cable to trace back to an interface.
Here is what I did.
In the case of NVME smart drives, you can use smartmontools in linux to get the serial numbers of the drives (thank you fzabkar)
Physically mark/write the drive slots 1-6
Get the serial number of the drives. (record them, write them down)
Put the drives in the appropriate slots. Note the serial number with the marked slot number.
Then run smartctl to get the serial numbers matching your dev mapping in linux.
So now I have the following:
M2 Hyper x16 / MKNSSDHL1TB-D8
nvme0n1 - MK19071610054794D (Slot 1)
nvme1n1 - MK19071810054A0B5 (Slot 3)
nvme3n1 - MK19071810054A087 (Slot 2)
nvme5n1 - MK19071810054A0B7 (Slot 4)
MotherBoard
Samsung SSD 970 EVO 1TB
nvme2n1 - S467NX0M823106R (Slot 5)
nvme4n1 - S467NX0M823089V (Slot 6)
Note that there is no rhyme or reason for the default mapping in linux to the add-in card or the MB slots.
My ZFS pool had already failed with 1 drive being suspect. Now with this information above, ZFS will tell me which drive "was" there using the drive-by-id number which included the serial number.. phewwww..
Using the serial number and my saved info, I can now know exactly which drive failed and needs to be replaced.