Er... you're using a 60x60 pixel background on a 40x40 pixel button. It will fall off the bottom and sides unless you use size it:
background: url(../action.png) !important;
background-size: 40px 40px;
However, you're probably better off using WebKit's CSS3 selectors and doing something like this:
which gives you a 30x30 pixel image on a 40x40 pixel button, together with a handsome fading effect (thanks to the use of a -webkit-gradient with alpha transparency as the background-image, masked by the -webkit-mask).
padding: 5px !important;
-webkit-mask-image: url('../action.png') !important;
-webkit-mask-size: 30px 30px;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%,
from(rgba(255, 255, 255, 0.7)), to(rgba(255, 255, 255, 0.9))) !important;
background-color: #000000 !important;
The CSS3 selectors provide for a lot more flexibility and are well worth learning (and using) in the Sencha Touch context. It pays to be aware that Android's implementation of them is slightly less complete than iOS/Mobile Safari's, however.