What the vlisp says is this:
- Load a DVB
- as soon as you possibly can, run this Macro in that DVB
- as soon as you possibly can, unload the DVB
What AutoCAD is thinking while it does it:
Load the DVB
gotta run the macro but I'm busy
gotta run the macro but I'm busy
gotta run the macro but I'm busy
gotta run the macro but I'm busy
Run the macro
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
gotta unload the DVB but I'm busy
Unload the DVB
What's happening to you is that as soon as you allow user input, autocad is no longer busy and is waiting for input. your vlisp gives it the input at the earliest possible moment which is exactly what you told it to do.