Async means non-blocking, not parallel. It helps keep the app responsive while using less resources and avoiding lockups and crashes.
.NET is used by millions of developers. Strong and scalable foundations matter, and performance is an explicit goal with asp.net being one of the fastest web frameworks. Async is a core part of this.
There's very little - if any - overhead that you need to worry about with async code from the language to Visual Studio.