Ditt första problem är inget problem alls.
I princip funkar AppleScript såhär: En begäran skickas till InDesign att InDesign ska avslutas och i de flesta fall går inte AppleScript vidare innan ett giltigt svar, i det här fallet av typen "Indesign har avslutats" har returnerats.
Likaså är AppleScript smart nog att inte starta InDesign för att utfärda "Quit" om InDesign redan är avslutat. Innehåller scriptet däremot andra InDesign-kommandon kan man inte lita på den logiken.
Då kontrollerar man istället om InDesign är igång innan man exekverar resten av scriptet. Såhär:
tell application "System Events"
if (name of processes) contains "Adobe InDesign CS2" then
set myInDesignRunningBoolean to true
else
set myInDesignRunningBoolean to false
end if
end tell
if myInDesignRunningBoolean is true then
--kör resten av din kod här
end if