Here is what i want to be able to do.
Load a prefab over multiple frames so it does not affect the FPS of my game. And when it is done loading have it perform some sort of function call so i can activate the prefab and start using it.
Is this, or anything close to this possible? If so how?
I am specifically interested in a solution that is viable for the iPhone.
Well, honestly - I've never used instantiate (loading a prefab) on iPhone. In fact, a lot of people avoid it entirely, all your memory allocation should ideally be done on initial load.
Part of the Unity manual is an iPhone optimisation guide, and it goes into a little detail that allocating memory at run time (for example 'I'm already playing - but now i need to load 200k for a new textyre') is slow.
Unless you're doing basically nothing at all, it's going to be very hard to not hide that pause.
Case in point, MikaMobile's Zombieville (excellent title) recycles bullets and enemies, I don't believe there is any loading / instantiating of prefabs on the fly at all.