I'm new to ReactiveUI, but I believe the async and not freezing the UI are different issues. Async can happen on 1 thread, ie it doesn't wait for some result, but can continue processing other things. I think if you make the thread sleep and you only have 1 thread, then it won't be able to do any other work.
Something like Task.Delay I believe will let you wait for some time without blocking the thread.
If you want to use multiple threads, you can use the thread pool as you provided in your answer, but to run the subscription implementation on a thread pool thread I believe it should be:
.SubscribeOn(RxApp.TaskPoolScheduler)
Then if you want to do something with the UI needing thread affinity, you need to move back onto the UI thread with:
.ObserveOn(RxApp.MainThreadScheduler)
ObserveOn is where your IObserverable methods OnNext/OnComplete/OnError context is and SubscribeOn is where the subscribe implementation context is.