Hey, wow... this is a late reply! better late than never!
Since posting, we've actually switched to a continuous kanban system with no sprints, tickets are added to the backlog and then ops works on them and the product owner releases the completed tickets when they review them, though I think I can still answer the questions below. With respect to incentivizing, I suppose I should have said "inadvertent incentivizing", but your point is absolutely correct. We used to start iteration planning meetings with "oh nice, we did 100%" or sometimes "oh wow, we finished everything and then added tasks" and I suppose this naturally became something to aim for, but perhaps that was just in place of better, higher level metrics, like (just guessing here) uptime, bugs, accuracy defined in some way etc.. If aiming for velocity in an of itself is it's allowed to occur naturally, then I guess that's a failure of better metrics.
Classes of service makes a lot of sense I think, now that we've gone back to kanban, we have an "expedite" lane in our kanban board, it's big and red and at the top. This is obviously only used for things that are very urgent, but we could easily add more lanes if the need arose.
And now for the inevitable question about why the switch back... our team got a little smaller and we wanted to experiment with being a little more reactive over short periods. One of the problems we had with doing the 2 week sprint was having external stakeholders who didn't understand the system, so we'd be asked to do something and it would finally make it into an iteration 6 weeks later for various reasons, and even if those reasons were legitimate (which they often were!) the stakeholder wouldn't really understand why they kept hearing "it didn't make it into this iteration". At the time we were trying to build up some internal business and so we didn't want to put people off. Secondly, we found that in some cases it was a bit hard to avoid the product owners only reacting to very recent events in the planning meetings, rather than taking a wider view of things, so we ended up quite reactive and not able to spend time on bigger long-running projects designed to reduce our workload (like monitoring improvements etc). Switching to kanban has meant I've been able to throw a little bit of time at projects like that as I go and keep them almost in WIP (if that makes sense? they jump in and out of WIP a little, then they stay in WIP for a push when there is time).. that seems to keep things current and it avoids issues where we just remain aware of a problem for months but the fix is so big that it never gets scheduled, then the problem just becomes "that problem" that's accepted and doesn't go away. For whatever reason, having the freedom to juggle tasks around a little more than we could in the 2 week iterations means these problems have actually have time thrown at them and been resolved.
To answer your last question, I think on short term basis the answer would have been yes. When we scheduled work for the next 2 weeks, that work generally got done on time and so the stakeholders had predictability, but in our case that was at the expense of long running projects (paying off technical debt), and at the other end of the spectrum, very short term agility. Obviously both of those could be fixed with some redefining of "quick fixes" and a more critical look at the backlog during sprint meetings, with a focus on breaking down big technical debt projects into small chunks that could fit happily in an iteration.
Hope that also helps, sorry again for the super late reply!