Comportamiento impar de TestObserver al suscribirse a un Asunto

Considera el siguiente fragment de RxJava 2 en Kotlin :

// 1. Create subject val subject = PublishSubject.create<Int>() // 2. Get observable val observable = subject.subscribeOn(Schedulers.io()) // 3. Subscribe val observer = observable.test() // 4. Trigger next subject.onNext(42) // 5. Await observer.awaitCount(1) // 6. Assert value observer.assertValue(42) 

Desde mi entendimiento, el observer debería poder recibir 42 después de esperar en la statement 5 y la afirmación en la statement 6 debería tener éxito.

Sin embargo, lo que realmente sucede es: 5 bloques hasta que se agota el time porque no se recibe ningún valor y la aserción en 6 falla.

Además, si pongo un punto de interrupción en 3 y simplemente reanudo la ejecución después de que hace una pausa, todo funcionará. Parece un problema de enhebrado.

Me falta algo aquí. ¿Cuál sería la forma correcta de consumir un observable caliente?