The problem is that your page is being cached after the snippet is first run (displaying the form). Now, when the page is requested again as the result of the form submit, the page is taken from cache, with the form already inserted, and there’s nothing there to process the POST values from the submission.
You must use the uncached form for snippets that are dynamic (need to change between page requests):
This way the snippet isn’t evaluated until after the page has been retrieved from cache, so now it will process the POST as expected.
The other way to deal with this is to clear the "Cacheable" checkbox in the resource’s Settings tab. But simply using uncached snippet tags for forms and any other snippets that must change between page requests is the best way to do it.