If it was software related why wouldn't they just start producing cars and park them somewhere until the software was ready? They are clearly not.
The probably didn't want to produce a lot of cars in Q1 that they couldn't deliver until Q2/Q3.
I popped over to the Model S forum, many posters have a July delivery date.
The hold up could be many things, software, parts, technology, tooling etc, But IMO the Model S/X Refresh is significant, they are trying a number of new technologies and hitting some issues getting it all working or getting parts in sufficient volumes.
I'll be surprised if it is a simple production error that they should have solved weeks ago, of the list above, software and parts are by far the mostly likely things that could have gone wrong. Software is all down to Tesla, parts could ne an issue with suppliers.
Technology wise Plaid drive is new and innovative as a hold up there would not stop them delivering LR versions, it is less likely to be the issue.
What this shows is this was the right time to the the Model S/X Refresh, any earlier may have been even more risky.
Tesla is now better at basic manufacturing processes than there were 2-3 years ago and way better than they were in 2012. I'm not seeing a strong case that the rest of the industry is better. While customers with orders are getting frustrated, it is too late to do much about that now.
As we don't know what the problem is, we don't know if Tesla should have anticipated it. But it does fit the pattern of being a software problem, software projects can seem like they are on schedule then hit issues. If it is software, proving V11 in Model S/X first, before wider deployment makes some sense. Having Model S/X depending on V11 and not supporting the new models in V10 makes sense.
Making a bunch of cars only to stockpile them for 2-3 months might not make sense.