The method \Magento\Cms\Controller\Adminhtml\Page\Save::executeInternal()
fires the cms_page_prepare_save
event:
The current page is the event parameter, so event handlers can modify the page.
But the validation ignores the actual page data and validates only old page data (data before event has been triggered):
I propose to replace the line
https://github.com/magento/magento2/blob/f578e54e093c31378ca981cfe336f7e651194585/app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php#L62
with the new one:
if (!$this->dataProcessor->validate($model->getData())) {