You are right not to use wait-for-device. It does not wait for the package manager to be available, what you need. I'm not sure how eclipse does this, but you can poll the emulator until the package manager is accessible with the command adb shell pm path android. The command should return "package: something". Check out this python script that uses the technique: www.netmite.com/android/mydroid/1.6/.../adb_interface.py. It is quite large, but if you are looking for the command above, you will find the corresponding script fragment.
Why do you want to delete AVD every time?
, - , AVD, : adb install -r file.apk. -r . adb.
, "" ? , AVD. -wipe-data . AVD , . .
, script.