Сейчас в lwip есть функция sys_check_timeouts(), там всё это
периодическое вызывается. И в комментарии к этой функции что-то
сказано про rtos: /**
* @ingroup lwip_nosys
* Handle timeouts for NO_SYS==1 (i.e. without using
* tcpip_thread/sys_timeouts_mbox_fetch(). Uses sys_now() to call timeout
* handler functions when timeouts expire.
*
* Must be called periodically from your main loop.
*/
void
sys_check_timeouts(void)