Canceling a task or raising CancelledError does not produce a backtrace. This is true when using the Python Task implementation. When tested on MicroPython, which uses the native _uasyncio.Task implementation, this works properly.
(I also tried getting the native _uasyncio up and running in CircuitPython, but it's also having issues, because we require that it provide an Task.__await__(), which it does not provide.)