I had a real nice update experience. I did the in-place network cli method, changing all the zypp repos to use $releasever, including the obs ones, and then used the
zypper --releasever=15.2 refresh
policy override to do my migration and then zypper dup. I had a mix of obs repos, and over 6000 packages on my dev laptop too. The biggest issues were a few packages that wanted to do vendor migration, and I got rid of a few repos I no longer felt I needed right before the migration to make it a little simpler.
This makes me feel much more comfortable with deploying and maintaining dedicated opensuse or suse servers and devices in future products, which would have far less repo complexity and far less packages. Containers do full system snapshots, so those have less issues, and I could see building docker images from tumbleweed for that.