Просто, что отличает эти языки при написании десктопных приложений?
Нативность процесса, в первую очередь. И возможно конечная кросс-платформенность полученных решений. В C#, точнее в платформе .NET есть отличная интеграция
(лучше слова подобрать не смог) с такими привычными многим штуками как WinForms например, и вообще он изначально создавался конкретно для разработки чего-то подобного, именно под
Windows (в первую очередь). Python изначально разрабатывался как платформо-независимый язык и в своём базовом арсенале, чего-либо сравнимого с функционалом построения различных форм на C#/.NET, из коробки не имеет. А ещё у C# есть отличная IDE идущая вместе с ним в комплекте (Visual studio), причём бесплатная, а ещё там есть WPF и разные другие штуки. Но я бы всё равно не сравнивал языки в таком контексте, слишком "топорное" сравнение.
Скорость? (хотя это метрика относительная, у любого языка есть 100500 способов ускориться)
Я бы не стал заострять внимание на этом показателе.
На каком языке проще использовать возможности 64-битной архитектуры?
Не понятно, про какие именно возможности идёт речь... Но, по моему, от языка это вообще мало зависит.
На каком языке проще сделать программу что бы она запускалась как можно на больших версиях винды без переделки, т.е. XP, Vista, 7, 8, 8.1, 10 и т.д.?
На любом языке, в но в качестве платформы - я бы порекомендовал конкретно .NET Framework 4.0, т.к. более поздних версий оного под XP, насколько я помню, не существует.
*но тут стоит обратить внимание, на то, что с большей долей вероятности, в систему для начала всё-таки придётся установить .NET, т.к. нужная версия оной есть далеко не всегда. Эту проблему так же решают инсталляторы, но размер инсталлятора самой платформы - тоже далеко не маленький. Современные ОС семейства Windows (10-ка точно) предалгают пользователю загрузить нужный .NET Framework при его отсутствии - автоматически.
На каком языке проще добраться до системных API если мне надо добраться до аудиоустройства или видеокарты? (ну просто С мы тут не рассматриваем в сравнении)
Не могу сказать наверняка, но скорее всего, ни на каком из них. Из коробки, языки высокого уровня, обычно не поддерживают низкоуровневые операции. Готовых же библиотек, в т.ч. низкоуровневых, для компенсации данного недостатка хватает обычно для любых языков. А вообще, это очень обширная тема, "добраться" до устройства можно очень разными способами... и на разных уровнях. Можно написать свой драйвер (в этом случае, вряд ли какой-то язык из списка подойдёт), а можно использовать WinAPI или какие-то готовые функции написанных кем-то ранее драйверов...