your code will continue changing the object color after the reactor is originally fired and, that will trigger an non-stopable calling for ur call-back function becoz changing color will also fire vlr:modified.
You need to record the old color of object and to detect if a color change is necessary. So the scenario of changing might be:
1: u change the number
2: callback function is fired as object is changed by content, then object color is changed if necessary
3: callback function is fired again if object color is changed
4: as the color is already be correct, then no change of color is needed any more. And then u can quit reactor callback function normally.