Привет, ничего себе тут советы, Рихтера читать )
По асинхронности я удивлён, что появились сложности. Сейчас весь с#, все его туториалы переходят на асинхронность в принципе. async/await можно использовать, даже не понимая, как это работает. А чтобы разобраться, достаточно прочитать пару статей.
Я рекомендую маленькую карманную книжку, она читается буквально за несколько часов и прям абсолютно всё становится ясно по асинхронности,
Приведу ссылку на озон, но можно найти и бесплатные варианты
Асинхронное программирование в C# 5.0
По многопоточности сложнее, в том плане, что она крайне редко используется в обычном REST api. Мне даже интересно, какие вопросы задают про многопоточность и что будет, если в ответ спросить "а у вас на проекте это используется или вы просто теорией интересуетесь?"