The comma button is indeed disabled (and darkened) after clicked once, the comma then should blink if clicked again to indicate "hey, there's already a comma!" (often it's the cursor blinking in such cases, but I thought it would be cool (and explicit) to have the comma blinking instead).
In fact, the erase button and the 0 are also darkened/disabled at popup (nothing to erase yet and a 0 doesn't make sense as a first entry. (This applies to an empty field, of course. I did not build the case of an already filled RichTextLabel yet, but the erase button should then be available from the start...)
Disabling the buttons always makes them darkened as well so in these cases the user easily understands there's no need to click a number at the moment anyway. All this, I think, supports intuitive usability and how the whole thing feels.
All your thoughts are, as usual, spot on. I mentioned a color-change in the beginning because I thought it was a rather common thing to start with, which I later, after understanding how it works, can change to basically anything bbcode is offering. But yes, that gap between those digits is the real goal! (And now I'm sorry for that detour...)
It's incredible how many details want to be considered when setting up the concept of such a seemingly little thing like a number-entry-field. I want to believe that I have quite everything covered in the back of my head (and on paper at that) but I'm sure (and sorry) I'm missing things in my descriptions here and there.
I couldn't explain it that way, but (I'm pratically certain that) your latest paragraph nails it as well. Having all the bbcode-"templates" set up in the RichTextLabel-script and then have them refreshed with any buttons-click. (...right?)