"The following snippet proved to me when that happens and it is a the bottom of the While, not when the exit condition takes place."
Nope. The actual exit happens at the top, where the test expression is. It doesn't matter when the "exit condition" occurs, it matters when you test for it, and in a while that's at the top of the loop. The first time your loop returns to the test, and abort has been set to T, then the while loop is exited.
Sometimes I set them up like this:
(while (not done)
(do-some-stuff)
(if (whatever) (setq done t))
)
Done is a local var and therefore initially nil.