Review async Rust for cancel safety, `spawn` discipline, and shared-state choice. Covers state held across `.await` under `select!`, locks across await points, `Arc<Mutex>` vs actor/channel, detached tasks that swallow panics, CPU-bound work blocking the runtime, sequential `.await` loops that should be concurrent, and cleanup that can't run in `drop`. Use when writing or reviewing `async fn`, `tokio::spawn`, `select!`, `Stream` consumers, or anything touching a Tokio runtime. Not a lint pass: reasons about what happens when a future is dropped mid-poll.