It'd likely be simpler to allow LoadProjectFileInfosAsync and LoadProjectFileAsync to load any project, not just C# and VB. For unloadable projects it would only fill output file paths ProjectFileInfo and set the Language to null and the caller would handle it appropriately.
Tracks TODO in code