That doesn't explain the astronomical wages for tech workers at all. Tech workers are paid highly because their employers are generating huge revenues per employee and the cost of living in these coastal hubs is exceptional [even before the most recent tech boom]. Tech workers not in Seattle, Bay Area, LA/Irvine, Boston, NYC and DC/NoVA are not getting paid nearly the same as tech workers in those places. Even in Chicago, Miami, Houston, Austin, Denver, Boulder, Raleigh, Charlotte, Philly -- they're all 20% or more lower comp. And what I'm not sure most folks on the outside looking in realize is just how much better tech companies pay for tech roles than non-tech companies pay for the same roles (usually in "IT" organizations). A SWE with 5yr experience at Google might be making $325k/yr total comp, but a SWE with 5yr experience at a F500 manufacturing company might be making $100k (and possibly working on harder problems).
The Google engineer is probably working directly on a product (or at least in a job function that is paid as if their members are working on the high-margin part of the business). The F500 manufacturing SWE is treated as part of the costs (and probably as NRE or overhead rather than as part of the product or even part of COGS).
>Tech workers are paid highly because their employers are generating huge revenues per employee and the cost of living in these coastal hubs is exceptional
These are factors common to all (e.g.) Google employees. But the folks cleaning the toilets aren't getting paid as much as the software engineers. So there must be a bit more to it than that. I'm not saying that the factors you listed aren't factors, but they aren't the whole story by any means.