onMouseUp event does not fire if mouse is dragged after clicking down

This is expected behaviour. This allows the user to not perform the action if they pressed it by mistake (for the mouse up not triggering).

This is a bit weird, and I guess it has something to do with how Ignition embeds images into buttons?

Before going any further with this, have a good read of this thread: Very Concerning Read/Write Issues. Important information for all users

Implementing momentary presses can be hazardous depending on how they're used.