Вы совершили ту же ошибку, что, как мне кажется, все делают, когда впервые смотрели на планировщики - я, конечно, сделал.
Ошибка в том, что Scheduler.CurrentThread
использует поток, который определил observable - вместо этого это поток, который выполняет observable.
Таким образом, Select
вызывается только тогда, когда на наблюдаемое подписано, и так как вы подписались на него вThreadPool
это также будет наблюдаться в том же потоке (CurrentThread
).