I am fan of doing thing semantically, but when something is easier to implement for me as a developer and at the same time allows better user experience (IMHO), then f**k the semantics:) You know the saying: to break the rules, you must first know the rules.
But I don’t think this is really the case of doing it non-semantically. You can choose to omit the CPT from search results and set each of slide posts as private so they will be inaccessible outside the slider itself. Honestly, I don’t see a single issue with this. Not doing it because “slide is not a regular post” is a weak one. For me, it is a post, but displayed only in a specific context.
Let me tell you how I am doing it. I am using slide CPT with slide category taxonomy so I can group slides. Then i place the slider via shortcode anywhere on the page and I can show either all slides or just slides from a specific category. It is super easy to create several unique sliders that way. I can’t really imagine doing this via theme options without coding an unique field for that. And do it just because slide as CPT doesn’t feel 100% semantical? No thanks. If I can give one single advice to new WP authors, it will be “keep it simple”, don’t try to reinvent the wheel.
On the other hand, creating slider via Customizer (not via theme options) have one big advantage - users can see the changes live.