As much as I like the concepts of cross-functional teams and vertical slices, I don't think that you've really shown how they can be applied well within a sprint. Say if a designer designs and user tests a tiny sliver of functionality in a sprint, what do the devs do while waiting for that design? And then let's say that the designer hands over the completed design to the devs mid-sprint for the devs to implement, what does the designer do for the rest of that sprint? Either there's a lot of thumb-twiddling going on, or the sprint contains a hotch-potch of different work by different people at different times. In this latter case, what was the point of a cross-functional team?
The one thing that is missing from your discussion is the Sprint Goal (SG). It's supposed to unify the team on a singular goal. While noble in concept, it actually makes the above situation worse. It's impractical for designers and devs to work on the same SG in the same sprint; an SG actually makes cross-functionality less likely.