First some background:
We have a team of ~18 devs working across several projects large and small (it generally breaks down to 3-5 scrum teams). We are all working in the same codebase and our sprints are aligned, give or take 24 hours due to scheduling challenges. We have a global code freeze 8 days into our 2-week sprint, after which there is a 1-week QA period. (Meanwhile, the dev team moves onto the next sprint.) At the end of 3 weeks we release.
(Already you can probably see a number of problems with this approach. Without getting into details, I'll just say that it has been a business-driven evolution.)
For us, the biggest challenge is the dev/QA disconnect during the overlap period. In short, with the dev teams jumping into a new sprint and QA checking the previous sprint, the capacity planning becomes very difficult. Devs commit to X number of points in the new sprint and then they get slammed with bugs from the previous sprint. The new sprint then suffers.
What we WANT to do is move to a true 2-week sprint model in which all development and QA happens within the 2-week timebox. Again, many reasons to do this which I won't get into here. For us it's mostly about quality and working towards continuous integration (we would release every 2 weeks instead of every 3 weeks).
I just wanted to see if anyone has had to pull of this bandaid and what kinds of challenges they encountered along the way.