Max-rounds and destructive-tool prompts use asyncio.to_thread with cancel paused on the main thread so multi-tool turns no longer look like user cancel. Hooks may be sync or async.
Max-rounds and destructive-tool confirms no longer cancel the in-flight turn; SIGINT during the prompt aborts only the confirm.