Thanks Lily.
I did something that worked. Tell me if this has any negative ramifications:
I used a smartshape and "use as button" was checked.
On Success: Toggle
Variable: cpCmdTOCVisible
Timing: display for rest of project.
Do not forget to put it 'always on top' when timing for the rest of the project.
That is the simplest work flow, indeed. However: the button will not show the status, which may not be a problem. The biggest problem you have since you are still on CP8, is that there is no way to pause the slide while the TOC is open. You have to consider that: is it OK that the slide will continue to play and eventually go to the next slide? Do you have another way of pausing the slide?
The toggle command was added with CP7, didn't exist when I wrote the article for CP6. It used to be:
Expression cpCmndTOCVisible = 1 - cpCmndTOCvisible
Reflect about the Pause: do you want the button to pause the slide while the TOC is open or not?