К сожалению, сложно дать общий правильный ответ, не видя ваш код и то, что вы используете.Что именно в вашем коде называется received_fn
?
Используете ли вы какой-то цикл обработки событий, который позволяет регистрировать события?Если да, то вы также должны использовать методы хронирования этого цикла событий для тайм-аута срабатывания.
Более общим подходом будет использование глобальной переменной или атрибута для мониторинга.
Если выесли вы используете потоки, то, возможно, вам нужен объект события, так как они позволяют ждать с таймаутом: https://docs.python.org/3/library/threading.html#event-objects