FPTP is a bad system only within the context of a partisan system of government. Remove the parties from the ballot, and FPTP and Plurality-at-Large (i.e. bloc voting) are the best systems since they allow the people to vote in the best candidates to represent them.
FPTP and block voting fail only within a partisan context, in which case then some form of party-list voting would be preferable.
So the way I see it, the best way to fix the problem is to remove party names from the ballot and just stick to either FPTP or bloc voting, LV a distant second to that, STV a distant third, party-list voting a distant fourth.
And if we insist on keeping party names on the ballots, then and only then would I agree that a party list would be preferable to any of the above, whereby party names are in fact the only ones on the ballot, with FPTP with party names appearing on the ballot being among the worst possible options since it essentially amounts to false advertising by giving the impression you're voting for the party when in fact you're voting for the candidate.
Or another way of looking at it is that when yo have both candidate and party names on the ballot, it essentially amounts to false advertising, since in principle you're voting for one or the other but not both. So if we are in fact voting for candidate (as is the case with FPTP, Bloc Voting, LV, SNTV, and STV), then let's be honest about it and remove party names. And if we insist on keepin party names on the ballots, then let's go to a party list system and remove candidates' names from the ballots and just leave party names there since they we woud in fact be voting party.
Either way, let's scrap the false advertising on ballots for a free, fair, and democratic election.