Асинхронность, по простому, нужна, чтобы вызывающий поток не находился в состоянии ожидания окончания операции. Польза от асинхронности заметна в основном при операциях ввода/вывода, когда аппаратные средства явно могут уведомить ОС об окончании ввода/вывода. При выполнении вычислительных операций на CPU асинхронность скорее навредит производительности. Читайте Рихтера, у него всё разжевано на примерах.