Kodi is actually complete crap for running IPTV, despite what people say. People are usually running an OS (AndroidTV), and Kodi (another OS, sandboxed) within their primary OS, and then Kodi is running a bunch of addons and plugins while running another software to decode IPTV.
Ideally you'd want to run an IPTV decoding minimalist OS. I'm totally against using Kodi, because it hogs the memory off whatever device it's using, even in LibreElec.
Is there an open source OS I can use for my raspberry pi 3b that would take me directly to the channel listings and EPG? If not an OS for the Pi, is there a dedicated IPTV box that would give me that experience? For me, EPG/channel switching speed is much more important than what other fancy features and software I can run on the box.
As you mentioned, kodi is not where you wanna be for iptv. At this stage, iptv has matured quite a bit.
The closest you will get to a "cable company like experience" will be from a dedicated box like the formuler, Dreamlink, buzz, Avov etc. All of these boxes have the ability to power on and jump right into tv like a normal cable box, with each brand having the ability to record/pause live tv depending on the model chosen. Do not these are essentially designed to be cable box replacements, nothing more nothing less.
If you need more control such as pc game streaming, plex server, etc all in one box, you'll want to step up to something like the Nvidia shield.
The shield is by far the most versatile box, and is what I use. However, I'm a heavy user and developer so I root my shield and use it for various things. It does iptv well depending on the software you use on it, but may cost you extra money in software subscriptions in addition to your iptv subs depending what you use.
Another downside of the shield is it doesn't come with a proper remote for tv, tuning into stations has to be done on a guide directly (no number buttons on remote), and some of the best iptv providers that use stalker (ie ipguys, express, star, gold etc) are only available through emulation (stb emu) which is a whole different issue on its own (not ideal)