Why am I getting posts back when I shouldnt

I suspect that your issue is occuring because the category term events does not yet exist.

If the function get_cat_ID() fails it returns 0, and in turn the wp_get_recent_posts() function uses 0 as the default for the category parameter, meaning that the parameter is ignored by the function.

To avoid this behaviour I suggest you check for the result of get_cat_ID(), and if it is 0 change it to -1

$events_cat_id = (get_cat_ID() != 0) ? get_cat_ID() : '-1';
$categoryPosts = wp_get_recent_posts(array (
    'numberposts' => 4,
    'category'    => $events_cat_id,
    'post_status' => 'publish'
));

For more information, please see the function reference pages for these two functions –