Tokio's unstable JoinSet would make it easy to do that. You can also get the same effect using FuturesUnordered by using its iter method to iterate through and call abort on every join handle.
A bit off topic, do you have an idea when JoinSet will be added to the stable API ?
I almost reached for it yesterday evening and couldn't be bothered to setup my build to use the unstable features (which means you did your job right by making it "difficult" to use unstable features )