По-моему, в примерах обычно корявые порт ethernetif.c, не
рассчитанный на многопоточку. Чем больше у вас потоков, которые с
lwip работают, и чем больше они нагружены, тем больше вероятность
ошибки. Лучше почитать на офф. сайте lwip как правильно портировать.
(UN)LOCK_TCPIP_CORE и SYS_ARCH_(UN)PROTECT надо расставить или через свои семафоры.