Form won't submit properly on the front page
I have discovered that I needed to make sure the form did not submit to the front page. I needed to set up a custom path for #action on the form, and make sure there was a callback defined in a module.

When landing on that callback, the validation and submit handlers successfully fire. I can then redirect users back to &lt;front&gt; if they are successful. The downside is that on error, there needs to be a separate page where the form is displayed. I couldn't find a way to show the error on the front page itself.

This is good enough for what I need. Thanks for the suggestions in the comments.