If you have animation you will probably have to use to the hover effect method, the copy styles method or write your own CSS method.
The button method hides one layer and shows the next layer. There is no animation between. The other method uses CSS to change the styles of the existing layer to the styles of the destination layer.
I’d like to improve this but there are a few UXP API limitations and a few other complexities.
One idea is have the option to create an animated gif of the button and play that on hover. Another is to export animation timeline data and then play that back on hover.