I'm using a similar System76 laptop (Gazelle 14") with hybrid Intel/NVIDIA graphics—though running Debian, not Pop_OS!—and at least hardware acceleration works fine under both GPUs without rebooting. I'm using the primus-vk-nvidia package and a simple "pvkrun" prefix when starting a command will run it using the NVIDIA graphics card rather than the default Intel card. This passes the rendered framebuffer from the NVIDIA GPU to the Intel GPU via the Vulkan APIs, which are better suited for handling dissimilar GPUs simultaneously then the older OpenGL-based PRIMUS implementation.
As for the external displays, HDMI out seems to work on my system through the default Intel controller. I haven't tried the DisplayPort or USB-C interfaces. I do know that the proprietary NVIDIA drivers are incapable of efficiently scanning out graphics rendered on the Intel GPU using the standard Linux interface (xrandr --setprovideroutputsource). The NVIDIA driver can use outputs provided by other GPUs but won't provide its own outputs for other GPUs to use. All the guides I've seen say that if you want to output on the ports controlled by the NVIDIA card you have to make that your primary GPU, which of course impacts battery life.
Technically there are open-source drivers for NVIDIA cards (nouveau). And they do support the standard interfaces to let other GPUs control the outputs. They just aren't on par with the proprietary drivers performance-wise, and normally performance is the reason you want hybrid graphics in the first place. However, if you just to use the extra video output ports while rendering on the integrated GPU then the nouveau driver is a viable option.