There are two distinct problems here.
I've solved one and think I know how to solve the other.
My application MailWing.app contains the handler …
on showBusy(dialogText, ignoreMail)
set busyAppl to ((path to me) as text) & "Contents:Resources:displayMailWingBusy.app"
ignoring application responses
try
launch application busyAppl
tell application busyAppl to showBusyDialog(dialogText, ignoreMail)
end try
end ignoring
end showBusy ----------------------------------------------
which launches the application displayMailWingBusy.app which runs in parallel with MailWing.app and displays a busy message until MailWing finishes. There is no run handler in displayMailWingBusy.app. The problem is caused when launch application busyAppl finds no run handler and quits immediately, causing the next line to error and no busy message is displayed.
displayMailWingBusy.app was originally compiled with Stay Open = false and Show in Dock = false. The fix is easy:
1. Compile with Stay Open = true; and
2. Add a 'quit' at the end of the showBusyDialog handler.
I just tested this and it works perfectly!
I will let you know about the other problem when I've finished testing it.
(Obviously, I'm not waiting for Apple to fix this!)