Buttons for custom properties don't refresh when changed by other parts of the script
Ideally this would worth without any explicit update or redraw calls, however - this issue can be resolved by tagging the area for redraw.

After the assignment call context.area.tag_redraw().



Note that normally its best to use context.region.tag_redraw() (which would redraw only the panel), however its not working in this case because this region isn't active when the pop-up executes.

You could store the region before executing the operator, but this is probably more hassle then its worth.