Update menu when saving settings

I initially misunderstood your question completely (too much tea, too focused on my initial idea of what your problem is instead of carefully reading ;).

I believe that the problem isn’t that the menu is already created (admin_menu runs after init) but rather that registerPostType will only run in init if it is enabled (and not when it is being enabled).

Moving the if ($this->enabled) { into registerPostType and running it unconditionally on init, e.g. just putting

if (!$this->enabled) return;

at the top of registerPostType and changing

// Register custom post type if enabled.
if ($this->enabled) {
    add_action('init', array($this, 'registerPostType'));
}

to

// Register custom post type if enabled.
add_action('init', array($this, 'registerPostType'));

seems most logical to me.