It doesn't get a lot of love on HN, but these problems are addressed by Scrum. Sprints have a pre-allocated amount of work in them, which makes estimating easier. You can't predict exactly how much time you'll lose through meetings and emergencies, but estimating in story points will add a rough statistical estimate.
Of course, if you already have a toxic development culture like the one you describe, then they'd probably abuse more agile processes too.
Of course, if you already have a toxic development culture like the one you describe, then they'd probably abuse more agile processes too.