As you have correctly guessed, the problem is related to the touch/click events delay. In general, the workaround you have mentioned is not needed in iOS. According to their specification, the click event will not occur if the DOM changes in the touch event. Unfortunately, this implementation is broken in older Android devices.
At this point, we can't suggest anything apart from the workaround you have already discovered.
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI