Did you try setting the buttons
pressed attribute when receiving InputEventScreenTouch? (according to pressed state)
Doing it that way maybe can be problematic. I'd see probable problems when a touch is released outside the button. (Finger pressed on button, dragged outside, and then released.) You've got to try this out.
In worst case you'd also have to save the touchevent index for each button on press and watch _input() (which is a global event handler) for pressed=false events with that very index.
Yes, with "Emulations" I'm writing of the project settings->input devices->Pointing.
Emulate Touch from Mouse:
-> Create "fake" Touch events from the Mouse Events. So you can roughly test touch event handling on non-touch devices (on PCs).
Emulate Mouse From Touch:
-> Creates "fake" Mouse events from Touch Events. This enables Mouse-like behaviour on touch-screen devices. But: This emulation is not multi-touch capable. (As far as I know)
Keep in mind:
There's a possibility of mouse events on Mobile Touch-Devices. At least on android devices you can actually attach mice via usb (USB-OTG) or bluetooth.