You shouldn't need to do anything special - the script should automatically quit once it's done its thing. You don't even need the 'tell me to quit' line.
There are only three cases where a script should stay open indefinitely.
The first is if you have a repeat loop or command that doesn't exit.
Second is a script with an 'on idle()' handler
and the third is an app saved with the 'Stay Open' option checked in the Save dialog.
If what you've posted is your entire script it could be the latter. Re-save your script and ensure the 'stay open' option is not checked.
Of course, that being a 'rule', there are always exceptions. In this case since you're using 'do shell script', AppleScript may be waiting for the shell command to exit before it thinks the AppleScript is done.
For 'do shell script's to return control to the AppleScript, you need a little more than the '&' on the end.
You also need to redirect
stderr and
stdout, which you do by appending:
>/dev/null 2>&1
to the command. This redirects the output of the command, returning control to the AppleScript.