I had the same problem. With Vaadin 6.8.1 I solved it by subclassing Button and adding a click listener that moved focus to nearest ancestor that can acquire focus:
The original symptom should be fixed just by using CSS, no need to remove focus from the button. Just make sure you use the right selector (:focus) and that the selector has enough specificity to override any previous selectors.
I’ve noticed the same effect when using Vaadin in a portal. When I click a button it seems to stay ‘pressed’, but when you click elsewhere it return to normal. So it seems to be related to the focus on the component. The trick with the custom button doesn’t work in my case, but I also can’t seem to find the correct piece of CSS to change so this strange focus effect is canceled. Any ideas?