Solution
CancellationTokenSource pattern allows cancelling mid-reload — In `OnReloadStart`. Tension: when switching weapons or firing. Outcome: cancel any existing reload, create a new CTS, set `isReloading = true`, then `await ReloadAsync(token)`.
5e9d569a-21fd-40a6-b2a8-e44177ddb04c
CancellationTokenSource pattern allows cancelling mid-reload — In OnReloadStart. Tension: when switching weapons or firing. Outcome: cancel any existing reload, create a new CTS, set isReloading = true, then await ReloadAsync(token).