I messed up the fly’s velocity above. That would be right when the fly sticks to the train. For perfectly rigid fly and train, the fly is going -100 m/s before the collision, and bounces off, going +300 m/s after. Which is still undefined, and just makes it even less reasonable to say its velocity is zero.
No. Perfect elasticity means the material deforms in response to a force and stores all the energy resulting from it’s drop in kinetic energy, then it releases that energy again as it returns to its original shape. Of course, that’s not possible because some of the energy would be lost to heat. Perfect rigidity means it does not deform. I think in the real world materials with high rigidity simply break. Perfect plasticity (though you didn’t ask) is a material that deforms and stays deformed.