I can guarantee that you'll wish you had more time! You hit some great places. I do think that Cinque Terre for 2 nights is sufficient. Take the boat from town to town for the best views; have lots of seafood for dinner; talk from town to town (if you are interested in that sort of thing); and, they do have great local wines.
I'm wondering about your time in Venice and Florence. My personal preference would be to switch them. Venice, for me, is not a museum you look at but rather an work of art that you walk around in. Besides the main attractions (San Marco, Frari, Rialto etc.) there are experiences you won't find anywhere else. Late at night, take the vaporetto up and down the Grand Canal. Take the vaporetto (#1) over to the Lido and back (you don't need to spend much time there - you can just get right back on the boat) for a bit of relaxation and some beautiful views of Venice. Go dancing on Piazza San Marco. Sorry, once I start on Venice it's hard for me to stop - I spend about a week there every year (this will be year 15). Florence has some amazing museums (if you are into museums), especially the newly re-opened Duomo museum. It's also a great place to take day trips to Siena or Lucca.
Rome for 4 nights? Hey, it's all the time you have left so go for it! Remember, for each of these places: you can go back!!!! Think of this trip as taking a break after the appetizer - you still have lots of courses to be served. What I do like in your itinerary is that you've included the Cinque Terre. At least you'll be seeing something that is beyond the "3 biggies." In April I should think you'll not be overcrowded with tourists there.
Whatever, enjoy your trip! Enjoy the planning too! Maybe rent an apartment (I use vrbo.com) in Rome (anywhere in the Centro Storico)? Splurge in Venice (you don't really have much of a choice - Venice is expensive). I always stay at Hotel Ala, which is half way between San Marco and the Accademia Bridge. I like apartments in Florence too. Have a wonderful trip and start planning your return on the plane ride home!