But to generalize at a higher level -- "by what mechanism do we force management to be decent?" -- the only one I've discovered is to be willing to leave jobs that have management practices that one doesn't agree with.
Unfortunately that advice doesn't work in the general case -- mobility is relatively easy for developers but we don't make up a large part of the population. I feel like the right answer is some changes in our social structure or economy that makes job mobility much (much) easier. Like a BI/Negative Income Tax, or free education, etc.