"End" is dangerous, as Gonzalo already said. If what Gonzalo suggested does not work, try this.
"Not responding" status means that the application is calling an external component that is not responding. Even if that component is not called directly,
VB may do it for you (for example to close the connection)
This is a not easy problem to track. What I did in the past was to make a list of all the servers I was connected to, and one by one put a 'set server = nothing', followed by a message box, in the QueryUnload event. In that way I was able to find the component that did not want to be released, and the reason why.
And be careful: in this cases the application may work perfectly in the IDE. Always debug the exe.
Let us know.
Marco