So long as the two major parties have America gulled into believing that the only way to have an election is to have the process accept no information and no answer but “Which one of these is your choice?” then the situation of two-party-rule will continue indefinitely.
Now, of course, it’s entirely possible to have an election method such as instant-runoff where a voter indicates, for example, that his first choice is Candidate A, his second choice is Candidate B, his third choice is Candidate C, and other candidates, he has no preference on other than they are below these three that he picked.
Then if it turns out, as the votes are counted, that Candidate A isn’t in the top two, but Candidates B and C are, his vote counts as being for Candidate B.
But if let’s say it’s Candidate B that doesn’t prove to be in the top two as the votes are counted, but rather A and C, his vote counts as being for Candidate A.
Oh, but then people wouldn’t fear that voting for a minor party candidate meant that their vote would be wasted. We cannot do without that fear!
So, instead we have a system where if Stalin and Lenin were the two major party candidates, most voters would decide they “had” to vote for one of those two, else their vote would be wasted.
There are local elections where instant-runoff is used but I predict it will never be used in party-dominated major elections, for the above reason. Not because it isn’t better, because it obviously is.