This might come a bit late for you, but we have all been there when we come to an old question and no one replied but we need it. So for any future references, here is an answer I found after having a similar problem:
The problem is that the _unhandled_input(event) function only gets triggered when there actually is any input.
if event is InputEventScreenTouch:
filters out any other events, so
elif not event.is_pressed(): # touch released.
can never be triggered because it would require being pressed to even get there.
The solution I found is the following:
Go to Project settings -> Input Devices -> Pointing
"Emulate Mouse From Touch" should be checked here. If its not, check it.
Now every touchscreen action is also a mouse action. This doesnt always mean you can just make mouse actions and expect touchscreens to work with it, but sometimes it does. And even if it cant solve your entire problem, it can help with it.
For something to be reliably triggered every frame, it needs to be in
So you can go there and add a check that sees if the left mousebutton is up (like
if not Input.is_mouse_button_pressed(1):) and then proceed from there in whatever way you want to.