Если вы хотите, чтобы ваше приложение взаимодействия работало в основном как приложение WinForms, то описанный вами подход работает отлично - у меня почти такая же вещь в моих случаях взаимодействия.
WPF поддерживает MessageBoxes (хотя и немного отличную от WinForms версию), и вы можете собрать что-то вместе, используя WPF Windows (расширив его, добавив что-то похожее на DialogResult). Однако предоставляемые элементы управления WPF предполагают, что они пытаются изменить взаимодействия UX, чтобы минимизировать диалоги, особенно модальные.
Чтобы сделать вашу жизнь проще, я бы создал подкласс WinForms Form / ElementHost специально для работы с хостингом содержимого WPF, и в зависимости от того, насколько вы чисты, как ваши "использующие" объявления, оборачивая свое собственное перечисление типа DialogResult, чтобы не нужно включать пространство имен System.Windows.Forms, которое может сделать ваши кодовые компоненты WPF более громоздкими.