There isn't any documentation on the styleguide about using the mw-ui-icon class with a button. Changing the element to div immediately solves the problem. So I tried to make a standalone button with the class to see if the problem persists, it does not. mw-ui-icon when correctly used supports both divs and buttons.
Which would mean that there are other styles that are overriding it. Jumping into the inspector I found a rule that sets the pseudo element's height to 100% but I couldn't find the corresponding code that adds this. Unchecking that rule solves the problem too.
I am not familiar enough with the mobile front-end code to be able to find where it might be, though I tried. Hope this helps, @Jdlrobson!