Clean up some more minor things in message dialogs

Specifically:
 * Return an error in one case (that has only happened once - probably an unrelated glitch - per reporting.)
 * Allow override of button captions.
 * Fix the result when there is an error.

Doesn't match tests exactly due to timing but it's good otherwise.

-[Unknown]