To answer the question, there is no question Garrett should be fired. If he will be fired depends on front office politics and Jerry's creepy old man psychology, about which the less said the better.
Garrett can only succeed when nobody important gets hurt and everything breaks his way. In the face of any adversity his teams always implode. The coaching can't adapt and they never have any depth. The second part is partly a GM problem, but also a problem of self-scouting and player development. For instance, how the heck do you think Chaz Green is a plug-and-play replacement for Tyron Smith? That's some baffling crap right there.
He seems determined to pretend he's Jimmy Johnson and it's 1993, but neither of those things are true, and anyway the game has moved on. The ultimate irony is that Jimmy Johnson himself wouldn't do things in 2017 like he did in 1993, because he has a level of self-awareness that Garrett plainly doesn't. The great coaches are always changing and adapting, but changing and adapting are contrary to Garrett's nature, making him innately unqualified to be an NFL head coach on a really profound level.