When the virtual grid get a new color change before the old task has been processed for the same button, the previous task is cancelled, and if the old color was correct then not task is run, but if a different color needs to be displayed, a new task with the new color is put in its place.  This greatly reduces the number of midi events sent.