Audit all instances of RunCustomDialog:

This commit makes it so that every RunCustomDialog is wrapped in a try/finally.
In instances where we just had a Destroy call afterwards, I replaced with ShowCustomDialog.