These limit the number of concurrently running futures, which often but doesn't always limit overall concurrency. Add a note about this.
From @hawkw:
if your stream is returning tokio::spawn(do_stuff()) and you group them into a queue, the concurrency isn't limited, but if your stream is returning async move { tokio::spawn(do_stuff()).await } then the task isn't spawned until the future is actually polled for the first time