> To spawn a future on tokio, it has to implement `Send`, because tokio is a work-stealing executor.

Tokio's default executor is a work-stealing multi-threaded executor, but it also has a local executor and a current-thread executor, which can run !Send futures.