First, simple examples like this tend not to be a good basis to understand the design methodology. They can be to learn the implementation methodology. If this is the whole system, I would say that the use of an RTOS is overkill, which is why it doesn’t make a good learning platform for design methodology.
Next, “Blinking lights”, by their nature tends not to be critical in timing. 10 millisecond timing shift will not be noticable by a person.
For your case, taking this timing into account, I would have ONE task as the UART command receiver, and use the provide timer task to trigger a timer callback initiated and configured by the command task. This is reasonable, as the procedure to turn on and off the LED are quick and proper for such a callback, and the timer task, typically having top priority will have low jitter.
If you want VERY low jitter, I would move the LED blinking to an ISR triggered by a timer and that would drop the jiter to and order of maybe a few dozen instructions or so (depending on lengths of critical sections).
If you want EXTRAMELY low jitter (sub processor clock), I would design it to use a hardware timer to perform the blinking directly, and the command task manipulates the timer control registers.
If we want to be able to expand the complexity of the blinking, it might make sense to not use timer callbacks, and use an actual task to do that blinking, or if the LED control is outside the processor, but needs some I/O (like an I2C bus) to manipulate.
Your concern about being “disturb” has the problem that your system has nothing to actually disturb your LED operation. Even if we build a single task that both processes the commands and blinks the LED, the command processing operation is enherently quick enough to not be able to “disturb” the blinking to human perception unless you are using some form of pathological encoding.