Fist of all, lets put your code into properly spaced formatting so that it's easier to see what is in the scope of what:
The reason that your motors do not stop when you release the button, is because you never tell your motors to stop. The motors will keep doing what you told them to do last until you tell them otherwise. You have to explicitly set them to 0 when the button is released. Also, you may want to look into why you have two while loops.
Just as a side note, after looking at this code, I have to wonder if more than one person worked on this, as you have different coding customs in the same piece of code. Not that there is anything wrong with that, but it might be easier to understand if everything in a single program is formatted the same way.