As someone who has wasted several months trying to track down a spurious bug on customer machines (as in physical machines, weighing hundreds of kilos and cutting things at great speeds) I've got a healthy amount of respect for the "catching bugs later is orders of magnitude more expensive" attitude. Our company wasted about a man-year's worth of wages trying to resolve problems in poorly written C code which would have been completely avoided by using a language with Send + Sync and the borrow checker.
So I'd argue that the productivity gains from lack of bug hunting related to misuse of the language language (i.e. UB and null pointers and data races, you can still have logic bugs in Rust) is quite tangible.