Aha! It appears I am dumb for some reason, and keep replacing dracut with mkinitcpio, and I have literally no idea when or how I do this, but I did it again, so following the instructions I got last time I have resolved the issue.
We use dracut, not mkinitcpio. It looks like you installed mkinitcpio, which removed kernel-install-for-dracut.
That causes your initrams to be generated in the wrong place which is why you are having issues.
To fix this, first mount your efi partition to the correct location in the chroot. It should be mounted /efi, not /boot/efi.
Next pacman -S kernel-install-for-dracut which will want you to remove mkinitcpio.
After that, you need to go into the /efi directory, and clean out the old kernels and initrds.
Lastly, run reinstall-kernels