Actually I made an implementation mistake. Your device is apparently slow, but your MQTT broker is not, I guess.
Per specification I should honor homie/device123/$state
, but I don’t. I’ll fix that and make the timeouts configurable. Probably not this week though.