This smells like the classic "something needs to happen in the main
run loop but you're running the a modal run loop so it doesn't"
sort of problem that is also seen with things like embedding a
WebView (or using NSURLDownload) in a dialog.
I'm using NSURLDownload in a dialog without any problems...
So what you can try is rolling your own modal session
(beginModalSessionForWindow:, etc...), and inside that loop add: