Best Practices for Creating and Handling Forms with Plugins?

That’s just a quick feedback: Use a shortcode to insert your form into content. Those are quite flexible. And for the processed form’s need to have another URL you can add a rewrite endpoint like /form/processed/ you can check after submission then. That’s probably more modular.

In the end that prevents you to deal with the the_content filter as you can deal with anything within the shortcode callback.

It’s a rough suggestion only, but probably does the job for you.