The dropped cancellation failure mode is the scariest one here, exactly because there's no error to grep for, just a silent bill. The seventh failure mode (CancellationToken without [EnumeratorCancellation]) is a great catch too, it compiles clean and looks correct on review, which is what makes it dangerous.
The SSE vs SignalR framing (one-way vs bidirectional) is the clearest version of that decision I've seen written down.