Oh now that is tricky. But that means you won't have your colliders on the affected gameobject, but instead have them "somewhere else" otherwise you can't click them right?
It's a matter of using a different game object as an intermediary - so the one you actually pressed on is captured and this should get a reference to the one it should affect when it appears on screen. The affected game object should timestamp when it's turned on, so you can compare from that time, instead of press down time, when you calculate how long you've held on top of the affected game object.
You use one game object with a collider as you touch catcher(A), and a different one as your "show stuff on screen" one(B). A has a script on it that can be accessed from wherever you activate B, so that you can set up a reference when it happens. B contains a time stamp from when it is shown on screen. When the OnPress is released on A, you check the time on B - currentTime and see if you should doStuff().
There are other ways to do it, but this seems.. ironically.. the most straight forward to me.
