I have a similar setup to yours, on a Lenovo Thinkpad P1. I’ve found one workaround to the X crashes on monitor disconnect was to suspend first, then unplug.
sudo systemctl suspend
When using sync mode, you can run something similar to your above Xrandr to get both external and laptop monitors working:
xrandr --setprovideroutputsource modesetting NVIDIA-0 && \
xrandr --auto && \
xrandr --fb 4480x1440 --output eDP-1-1 --mode 1920x1200 --pos 2560x0 --output HDMI-0 --pos 0x0 --primary
dconf write /org/gnome/desktop/interface/text-scaling-factor 1
Also, you probably saw this already, but the wiki has a helpful tip on creating “specialisations” for boot menu items, so you can switch easily between sync, offload, etc: Nvidia - NixOS Wiki
Finally, your laptop may have a BIOS controlled mux switch to drive the internal display off the dGPU – maybe that would let you run in sync mode and connect / disconnect monitors without suspend.
Good luck!