"Staffing levels and rosters across the industry should be robust enough to cover all annual leave and a reasonable amount of sickness and other absence (training, union release etc)"
They should, but that costs money. Many TOCs rely soley on rest day working to cover almost all sickness, training and other absences. So when a driver or guard legitimately doesn't want to work the 6th Saturday in a row, or (gasp) wants to go on holiday, the TOC blames the lack of willingness of staff to work rather than their lack of staff. And that, sadly, is how the Great British public conceives it, and blames "lazy", "feckless" drivers and guards rather than the companies too busy counting the profit.
Add to that the arrangements where TOCs like TSGN who paid fines in advance so as to avoid specifically being fined for not running certain trains, and you end up with zero incentive for them to run trains at all.
"People not working overtime is not an excuse because the whole point of depot establishments is that they should be able to cover it with spares and cover turns."
And if your TOC's business model doesn't actually include any spares or cover turns? I even hear people stating that drivers and guards "should be forced to work overtime as part of their contract". Generally the kind of people who think one should be "glad to have a job"
"With regards to annual leave: there will only be so many people allowed to book the day off. Once that number of people are booked off then that's it, no more leave gets granted."
You end up with the situation elsewhere in the private sector where staff lose annual leave because they are unable to take it.
"The bottom line is that there are nowhere near enough staff employed on the railway in this country and the institutional and ingrained reliance on overtime has led to this situation."
This, in spades. But whilst you do not incentivise TOCs to actually recruit and retain staff, and do not strip poorly performing TOCs of franchises, this will never, ever happen.