await nhả luồng ra làm việc khác trong lúc chờ I/O (mạng, đĩa, cơ sở dữ liệu).
Quy tắc: đã async thì async đến cùng, tránh chặn bằng .Result hoặc .Wait() vì dễ gây deadlock.
Việc tốn CPU không được lợi gì từ async. Luôn truyền CancellationToken để hủy được khi người dùng bỏ đi.