Non-blocking UART loop
Refactors AlthermaHub by replacing the blocking UART polling loop with a non-blocking, loop-driven state machine.
UART send, read, and parse operations are now processed incrementally across loop ticks instead of within a single update cycle. This reduces long blocking periods and improves overall responsiveness.
The change makes the component more robust under load and should be better suited for setups with additional sensors, especially in slower or variable UART conditions.