Проблема заключалась в том, что файлы SLN были слегка повреждены. Удаление файлов и повторное воссоздание соответствующей версии VS привело к созданию файла, который инструмент сравнения считал идентичным, но был ровно на 3 байта длиннее. Я подозреваю, что проблема может быть связана с отсутствующей меткой порядка байтов UTF-8. Почему VSLauncher так требователен - это другой вопрос.
ДОБАВИТЬ: Да, после открытия нового файла в шестнадцатеричном редакторе я могу с уверенностью сказать, что проблема заключалась в отсутствии спецификации в старом файле. Это было сложно обнаружить, потому что мой инструмент сравнения даже не видит спецификацию.