1) To stop the form from executing I just didn’t run the wp_insert_post() if there was an error.
2) I returned a message like this:
$_POST['return'] = add_query_arg( array('post_id' => $post_id, 'message' => $message), $_POST['return'] );
For sure there are better ways, but so far this is how is solved it.