What is the best practices for complex Message Redirects?

Before 12.1, the "Core Messages" widget was often customized to change the content on the page for specific messages

In 12.1 this has been replaced with the Message Redirects aka  How can I customize messages (errors and user registration)?   function where you can override the /msgs page by pointing to a different page.

This is straightforward if the message page you have to recreate is simple, meaning basic formatted text in a Generic Content widget. But if the custom message includes Buttons or other logic that was originally in Velocity in Core - Messages, what is the best way to implement this?

I can create a custom widget with a Content.vm with the code I want, but the overhead of creating a separate Custom widget seems to outweigh the benefit of using Message Redirects. And going back to customize Core - Messages means I have to reimplement the Velocity code and and Language Resources it may have used.

Example message with button