Я вернулся к реализации которая была до этого, не пример из Куба, а то, что скидывал ранее, но там по сути идея одна и та же. Вот сейчас лог такой. А мк глох из-за вот этого else (3й скрин), там получается если данные принимаются, то выполняется их обработка(2й скрин), а если ничего не принимается, то код начинает крутиться в этом else, поэтому и зависает, условие if помогает избежать частного попадания туда