One thing that you could investigate is, after you click the button, look for some property on screen to indicate that the file is completely loaded. Does your application under test have that kind of indication? If so, instead of a hardcoded delay time, you can do something like
while w1.Window('Text','Status').wText <> 'Done' do
While this isn't exactly EVENT driven, it is going to break out of the loop as soon as the text of that field changes to 'Done'. This may be less than 60 seconds, may be more. Either way, it is more dynamic than a hardcoded delay time.
Automated Testing Evangelists
Definition expert - noun - Unknown drip under pressure