I ran Espressif's OpenClaw-inspired AI agent on an ESP32 with my self-hosted LLM, and it actually works
… Lua's garbage collector doesn't guarantee finalizer order, so if the bus userdata gets collected before its child device, the bus delete trips that path, leaves the mutex held, and the device delete then blocks forever waiting on the same mutex. …