Keep in mind the function of user interface objects.
Displays and status icons are read-only objects to inform the operator.
Buttons enable the operator to take action of some kind.
Combining these two functions was popularized by the play/pause button on computer audio and video players. From one perspective it makes sense to have 2 mutually exclusive actions share a single control. But the reason these systems work so well is that the audio or video provide abundant feedback to the user of the current state. Displaying only action info on a button without user feedback leaves the operator with the puzzle of deducing the current state which introduces ambiguity. If a button is labeled "Lock Door" does that mean the door is currently open or currently unlocked? Nobody knows.
I would argue that the green light is too ambiguous to effectively inform the user of the status. Does the green light mean that it is syncing or that it is ready to sync? Remember your job is to eliminate ambiguity. You should add a label above the button to inform the operator of the state. After all, it's no more work to add a label above the button than it is to put a status light on the button. The label should display "syncing" or better yet "now syncing" along with "waiting" and another word (or just blank) for any other state needed.