Negotiate with your users
I always advocate against simple (and especially modal) dialogs in user interfaces because they aren’t there to help the user get past the problem, more like work through the emotional issues the software is having.
Dialogs aren’t the real evil, though they usually aren’t great, it’s the lack of real negotiation. In the book Getting to Yes it states that you “Make emotions explicit and acknowledge them as legitimate…”, however don’t stop there.
A useful dialog would negotiate with your users. Give them actions and power to change their situation. Don’t ask users to acknowledge your troubles and stop the negotiation there. Reconnect! Try Again! Even simple actions can help people correct the situation.
