If you’re not doing minimalist bare metal (which will not support exceptions), you’re burdening your users with greater power requirements, bugs, and required firmware updates (or security holes) for the life of the device. Don’t put Linux on there. Make it do the bare minimum it has to do, expose minimal interfaces, and flash it into your MCU forever. Folks who design IoT should be planning for a mean lifetime of 20 years for their products. And no, I’m not going to buy shit that requires me to update firmware on three dozen different things in my house.