Thanks Wayne,
I think I see what you're trying to do there. I gave it a go but it still didn't solve the problem of modelbuilder not recognizing the workspace as a location for an inline variable. I noticed your testlyr pointed to your default gdb. when I changed it to include the workspace as an inline variable %Workspace%\testlyr (but using my own layer ans workspace of course) the same error came up, that the feature does not exist. It seems like arc, instead of just running the model and using the currently iterated workspace to find the layer, is getting hung up in the validation on the fact that since it hasn't iterated to a workspace yet then the features within that workspace must not exist.
Is there a way, in your python script, to have it output the workspace to a variable representing the gdb within the folder that the iterator is using (in the model I suppose it would represent the first gdb, but then would change to match whatever gdb is being iterated)? That way arc can "see" a gdb and believe that the features exist? Either that or if there's a way to tell it to skip the validation and say "Yes, I know you can't see the features yet, but once the iterator defines the workspace they'll be there, so just start running."
Thanks for your help on this.
Edit: I also tried using parse path for the inline, to no success.