This kind of shit can drag on for years, as the program goes through cycles of doing just well enough to show discernible progress, and then has a bad season that is rife with ready excuses. When the nadir is reached, there are a dearth of attractive coaching candidates, so admin decides to let the coach stay and evaluate next season's progress.
Then the cycle begins again.