Hi sen.abhishek,
There's not a way to register a callback with the the Echo Nest HTTP servers so that they will initiate a call to your machine when your analysis is ready. At the level of the HTTP API, there needs to be a polling loop, initiated by the client.
But you can absolutely hide this polling from the rest of your client code (which it looks like you've already done in the wait_for_analysis function). Is there something else you're looking to do? Is the question how to structure this python code in an asynchronous way (so that rather than having your main control flow block until analysis is ready, your main control flow can just register a callback and continue on)?
-Eli