async fn drain_background_tasks(handles: Vec<JoinHandle<()>>) -> Result<()>
Tasks past TASK_SHUTDOWN_DEADLINE are abandoned (handles dropped -> abort).
TASK_SHUTDOWN_DEADLINE