WordPress not adding -2 to slugs when saving post as draft

I just ran a quick test and there shouldn’t necessarily be a “slug” — post_name in the $wpdb->posts table– until the post is published, so something is going wrong with your site– something has been modified.

WordPress already checks for duplicate slugs. This is pretty critical functionality as certain permalink structures depend upon it. The function used is wp_unique_post_slug(). You can see it used in wp_insert_post()