Visibility is remembered between slides, but state is not?
I am trying to build a course module around a main page with links to topic slides, which can be clicked in any order. An example main page might look like this:

Ideally I would like clicking a button to do the following:
- Set the state of the button to "clicked", which lightens the background color, so it's visually clear which topics have been viewed
- Display a short summary of the topic to the right of the button (currently in a hidden caption box)
- Jump the a slide on the topic, which then returns to the main slide, where the changes described above can be seen
At first I created a shared action for this...

The odd thing is that, when I click the first button to go to its slide, and then return to the menu, the change in visibility of the description has stuck, but the button's state has reset to the default.

I was only able to get the effect I wanted by having the button's action set a variable, and then running a conditional action when the main slide loads that changes button state if the corresponding variable is set.
Button action

Slide action

Doing this for the second two buttons, I get the desired effect for them (didn't bother updating the first one for this example):

So, now I have something that works, but I am a bit confused: I would understand if neither the state change nor the visibility change stuck, or if both stuck, but this inconsistency makes me think I may be missing something.
Bottom line: is there a better way to do what I want?

