Ideally, we would expect that the behaviour would be the same as it is in browsers, where after a time limit of 200ms, the click event is no longer associated with the actions that might follow - in our case, a user taps on an empty ad and few seconds later, the iFrame element insertion is still considered as part of that tap. But the tap actually occurred way before (up to 8 seconds ago) the iFrame element was added to DOM.
We have also noticed that the behaviour on Android devices is different than on iOS devices. If you run the above code on Android devices using DFP interstitial app, the iFrame renders inside of the ad even in case of a user interaction:
This would mean inconsistent behaviour when comparing Android and iOS platforms.
Also we noticed the issue as described above in case #1 - URL provided in the iFrame src attribute is not rendered in the iFrame - the iFrame is blank.