My plan is to not work on this kind of functionality, at least for now. The Tundra codebase is practically full of assumptions “what if this asset is not yet downloaded” and the increased complexity that results from it, so in Urho I was glad to be free from that
I assume that with “fail” you mean that some of the needed resources is missing. Your flow looks basically OK. You possibly may get away with instantiating the node and component instantly, but leaving for example the model empty (null) as it hasn’t been downloaded yet. Then you start the download and once it’s completed, assign the model. You’ll run into difficulties and special cases, though, for example a bone hierarchy can not be instantiated before the model exists, so if the object has bone attachments, those can not practically be instantiated before the model.
Another way would be to store objects received from server, that have missing resources, into a kind of “buffer” while waiting for the resources to load. Then, after all needed resources are loaded, instantiate the object based on the buffered data. The server will of course keep sending updates (as eg. the object moves), in which case you must keep updating the buffered data. And in worst case the object might get deleted before the downloads finish, which you also need to take into account.