When an application is started the icon placeholder in Unity launcher is instantly allocated and animated with "the application is launching" animation. Later, when the application gets to a point it is able to run on its own, the icon ownership is assigned to the application.
What I suggest here is to follow OSX:
When an application is started the icon placeholder in Unity launcher is instantly allocated and animated with "the application is launching" animation. Later, when the application gets to a point it is able to run on its own, the icon ownership is assigned to the application.