You can register multiple activation hooks, that’s not a problem. Or you can use a wrapper function that calls the other functions.
What is wrong, is this:
add_action( 'template_include', 'terms_redirect' );
template_include
is a filter, not an action, so you should use add_filter()
.
$author_id = 1;
is dangerous, there might be no author with that id. Who owns that page then? Use get_current_user_id()
instead.
get_page_by_title( $title )
is not good enough for a check. What happens if the slug is already in use?