How to return variables from admin-post.php

You can send GET variables in the URL using wp_redirect.
For example:

wp_redirect( home_url() .'/form?result=error&reason=3');

As far as I know, yes, admin-post is the best-practices way to handle POST data in WordPress.