It boils down to people's choices. Yes, there are barriers, but Americans prefer these two parties over other options. At its core, that's why change does not happen.
That may seem "trite", but that's because of how simple that reality is. Americans choose the devils they know over any possibility of things getting better.