Next, check the TableToExcel portion by using the table directly. This would pull all rows/fields into the spreadsheet, but hopefully it would not exceed Excel's limits.. If it is not using aliases, then I would suggest using ArcCatalog to look at your table's properties, just to confirm the fields have aliases properly defined.
arcpy.TableToExcel_conversion(defeatureclasspath, r"E:\temp\CompletedProjects.xls", "ALIAS")
Also, as a note, when I tried using the [[Field, {Alias}],...,...] option in MakeQueryTable, the TableToExcel function gave an error that the aliased field didn't exist. Perhaps a bug? My versions are the same as yours; but I am using a file geodatabase; you might be using a server version.