comment_post action hook running on page load instead of after a comment is posted

Your action is called whenever comments.php loads because you’re explicitly running it with do_action. Both the function and add_action should be in functions.php, and do_action should be removed entirely.