Thanks again -- something about my setup is still not working. I am not sure how the button id and the data-dojo-attach-point are being used and I think something is getting confused. Why is the data-dojo-attach-point for my button text (on line 7) showing up as "containerNode"? Also, in my example of the workaround I gave above, for example, the way it works is that it is changing the color of the background of the textbox, not the button itself. I don't understand this, since I thought the attach point and the id both refer to the button element I created. The workaround works because it changes the background color of the text immediately on click, whereas every attempt to change the css of the button still only works onmouseout.
Using your code snippet in my setup results in a confusion of classes (but still with the onmouseout problem). I've tried to show more by copying some of the code from the Chrome elements panel.
Here's what I see before clicking on the button:
<span class="dijit dijitReset dijitInline danger" role="presentation" widgetid="mybutton">
<span class="dijitReset dijitInline dijitButtonNode" data-dojo-attach-event="ondijitclick:__onClick" role="presentation">
<span class="dijitReset dijitStretch dijitButtonContents" data-dojo-attach-point="titleNode,focusNode" role="button" aria-labelledby="mybutton_label" tabindex="0" id="mybutton" style="user-select: none;">
<span class="dijitReset dijitInline dijitIcon dijitNoIcon" data-dojo-attach-point="iconNode">
</span>
<span class="dijitReset dijitToggleButtonIconChar">●</span>
<span class="dijitReset dijitInline dijitButtonText" id="mybutton_label" data-dojo-attach-point="containerNode">Start Tool</span>
</span>
</span>
<input type="button" value="" class="dijitOffScreen" data-dojo-attach-event="onclick:_onClick" tabindex="-1" aria-hidden="true" data-dojo-attach-point="valueNode">
</span>
After 1 click on the button -- there is no change except the text changes to "Stop Tool."
Here's what I see after 2 clicks -- confusion of classes and the text changes back to "Start Tool."
<span class="dijit dijitReset dijitInline success danger" role="presentation" widgetid="mybutton">
<span class="dijitReset dijitInline dijitButtonNode" data-dojo-attach-event="ondijitclick:__onClick" role="presentation">
<span class="dijitReset dijitStretch dijitButtonContents" data-dojo-attach-point="titleNode,focusNode" role="button" aria-labelledby="mybutton_label" tabindex="0" id="mybutton" style="user-select: none;">
<span class="dijitReset dijitInline dijitIcon dijitNoIcon" data-dojo-attach-point="iconNode">
</span>
<span class="dijitReset dijitToggleButtonIconChar">●</span>
<span class="dijitReset dijitInline dijitButtonText" id="mybutton_label" data-dojo-attach-point="containerNode">Start Tool</span>
</span>
</span>
<input type="button" value="" class="dijitOffScreen" data-dojo-attach-event="onclick:_onClick" tabindex="-1" aria-hidden="true" data-dojo-attach-point="valueNode">
</span>