Thank you for the suggestion.
You have a right that the Wait On External Event is a kind of solution. However, it does not solve the problem completely, but only reduces its incidence. It's still possible that IIS restart or IIS crash occurs between Dialog 1 and the next component (i.e. Wait On External Event). In that situation the workflow queue already doesn't contain Dialog 1 task and doesn't contain yet the next component task. As a result, we remain without a state of process instances. It's not a very comfortable situation, but it occurs on our production server where we have a lot of instances of different types of parallely executed processes.
An example of long-lasting task was to display the essence of the problem. Similar situation can occurs when the unhandled exception was raised between tasks.
Is it really the workflow engine doesn't support reactivation of corrupted process instances?