OK, the correct answer to this is that another (incompatible) version of the Visual C++ Redistributable is already installed. It has nothing to do with the SQL Server version.
In my case I uninstalled VC++ redistributable 2017 from Add/Remove Programs. I actually had two slightly different versions installed, I uninstalled both then retried the installation of SQL Server. This also broke Management Studio which was already installed, and reinstalling just the VC++ redistributable didn't work (probably now the wrong version), so I ran a Repair from the SSMS installer and that fixed it.
Props to this solution for pointing me in the right direction.