But it turns out that approval voting is itself considered a very good voting system (I remember reading an article about how a conference of experts voted on their favourite voting systems and approval voting won, but I can't find it because "voting system vote" isn't a very good Google search).
Of course it will. The fundamental problem is selecting only one representative per voting district. However fancy and complicated voting algorithm you make, it will most probably collapse anyway. It's the size of the voting districts that leads to a two-party system, not the voting mechanics.
But then: Just pool nearest 20 voting districts [x] into one large voting district, from which you elect 20 representatives, and any kind of simple proportional voting mechanics [xx] will do. If you elect 20 representatives, any party that manages to get at least 5% of the voes will get their representative to the Parliament. New political parties start to appear, and a multi-party system emerges on its own.
[x] Or 15, or 30 or whatever.
[xx] Such as the D'Hondt method, https://en.wikipedia.org/wiki/D%27Hondt_method
Of course, drawing these districts (in either system) is an inherently arbitrary process which can lead to counterintuive or obviously unideal results, the most obvious example of which being gerrymandering. But at the end of the day, unless we have a one world democracy, borders must be drawn. National borders are “easy” in the sense that they tend to be formed not by a democratic political process but rather historical conflict.
I'm not sure I understand your comment. There is no "instead" -- you can vote honestly for both your preferred candidate and the popular candidate.