A draft implementation is at #1470 (comment)
@pfackeldey follow up here with any further comments. A question for you: for the background thread, do you think it makes sense to share it across backends since its somewhat common to just need something to do work while the user thread continues to do whatever it does? (probably most of the time it blocks on task.result())