Done it with dd1 at 4 months to France and then later with dd1 22 months and me being 9 months pregnant to Germany, via Holland and then with all 3 dd's again to Germany, via Holland.
We found it fine, apart from when dd1 was a toddler and got full blown croup on board. The cabins (at the time, anyway) tended to have very dry air. She went to sleep with a cold and woke in the night with severe croup. I spent the rest of the night with her in a cot just in the main part of the boat. Dh carried on sleeping in the cabin (as he had to drive the next day).
Apart from that, ferries are fine. The ones I've been on have always had a little playroom. Between the playroom and walking about looking at everything, eating and sleeping, it was ok.
Really helped having a cabin though, as your 'base'.
Dd1 is now 11, though, so info probably just a little dated.
It'll be fine, I'm sure. Have done it several times. Twice (I know, I know... we're utterly cr@p!) because we missed the ferry we should have been on and had to get the next available one, which was overnight, and once 'on purpose'. The two unscheduled night crossings were Cherbourg to Poole and we did it with a 7-month-old and a 2-year-old the first time and the second time when they were just one and nearly 3. The first time I ended up sharing a bunk with the baby, which wasn't great in terms of me getting much sleep, but I found out later that you can ask for a cot attachment type thingummy (may still be relevant for your 2-year-old?). Ask that the information desk when you board, or phone them to ask in advance (obviously not possible if you're only one the overnight because you missed the ferry ). Last summer we did Hull-Zeebrugge with a 4-year-old and a 2.5-year-old, which is a 12-hour crossing. It was really great. More time to settle than on the Cherbourg-Poole route. We had a meal, there were activities for the kids (really aimed at slightly older ones, but it kept my two happy for half an hour too with bits of colouring and what not). Then we got them into bed for about 9/9.30 p.m. and they slept until we were woken up in the morning ready for the ferry to dock at 7.00 a.m. It may have helped that we dosed them with travel sickness pills (the kind that are suitable for small children - can't remember the brand, but got them from the chemist) which definitely made them more drowsy than normal. I wouldn't normally advocate drugging my children , but would definitely use travel sickness pills again for an overnight ferry crossing! I also think that you are right to go for the slightly longer crossing to St Malo and to sleep through it, rather than going to Cherbourg. The Cotentin Peninsula is long and it takes longer than you think it will to drive the length of it (hence one missed ferry!).