That, I'm unsure of. From perldoc -f -X:
-M Script start time minus file modification time, in days.
Does File::Spec->catfile() modify the file mod time by chance? What happens if you put a two second delay in between that line (in the lib), and the unlink() call? Does that improve things? I know that's definitely not optimal, but it would be worth a shot especially if you can reliably reproduce the issue locally.