Turn on Balloon Help from the Help menu. Now move the cursor over the window behind the modal dialog. Now look at the Chooser. It has stopped running. The window that got zapped by the balloon now has an update pending for it, that update is going through the ModalDialog trap, and not through the program's event loop, so it is not being serviced.
Time stops for all other applications.
This only happens if the update is for the same application as the dialog box. You have two choices in your application to prevent this from happening. The first is to have no other open windows in your application when you open a modal dialog. Obviously, this isn't always a realistic solution. The second, saner, solution is to provide yourself a mechanism to refresh all your windows from within your modal dialog.