2) Open primaries where Democrats can cross over and vote for the Republican candidate they would most like to run against.
The solution is easy: no winner-take-all primaries, and no Democrats voting to sabotage Republican primaries.