Barsik_The_CaT:
Is this a good approach? Is there room for improvement? Are there any caveats to it?
I am definitely NOT a C/C++ expert. I only use it on Arduinos because I have no choice.
However it seems to me your approach is no more convenient than the basic system in Several Things at a Time
...R