disconnectAsync

Same as disconnect, but runs on a background thread and returns an Async wrapping it.