This is the key.
I’m retargeting from a UE Mannequin to UE Mannequin using the Lyra project.
Changing translation Mode to “Globally Scaled” will ensure that the retargeted animation has root motion.
I also tested this out with and without “force root motion” and it seems this part doesn’t matter.