Потому что нужно еще правильно вернуть 1 из 3 возможных результатов в тот метод который все начал, а он еще может и вовсе не получать ответов так как пользователь может и не останавливать, а нужно же как-то запускать загрузку по порядку ожидая когда закончиться предыдущая, там много нюансов выходит, я пока не могу сообразить как это лучше переделать что бы работало, мне пока проще понять в чем баг с ивентами стрима, а так нужно будет все переписывать в обоих процесах)