Как сделать правильный выбор между C# и Java?
В далеком прошлом, я занимался пустой тратой времени. А именно - выбором языков программирования.
И продолжаешь этим заниматься.
Сформулируйте ещё раз задачу. Например зачем вам вообще изучать какой-то ЯП? Разработка только под Винду и вы уже знаете с#? Так продолжайте, если это ваша работа. Если хочется чего-то нового в этой сфере, попробуйте .Net. Java тут явно лишняя, она не очень хорошо подходит для десктопных программ, как и python или не дай бог php. Не спорю их можно писать на этих языках, но согласитесь это legacy, у .net или c# как минимум больше Профит в этом.
Если вдруг встанет вопрос о кроссплатформености GUI приложения, то я бы рекомендовал Qt, там под капотом c++, можно конечно и python опять же через Легаси костыли типа pyqt, а pygtk так себе.
А вот на c# сделать веб приложение будет проблема, в отличие от рнр или python, да даже на java будет легче :) и главное кроссплатформенность, но сейчас не об этом.
Вам нужно выбрать свою нишу деятельности, отсюда язык сам выберется.
Микроконтроллеры это c и c++ тут без вариантов,  как бонус для развития ассемблер можете изучать.
Под андройды конечно же java, как бонус kotlin.
Но учтите мобилки и контроллеры это 2 разных направления, а десктопные ещё и под Винду это вообще 3 направление развития.