I just did this two days ago and I'm in Zanzibar now. Some notes:
Yes, the bus from Arusha to Dar is about 10-12 hours depending on how many stops your bus takes. Kilimanjaro was recommended to me as best and the cost was about $15 USD. I booked my seat the day before and was glad I did as the bus seemed to fill up when we got to Moshi. (Tip: be sure to dehydrate as there are only about 2 short stops for using the toilet). I took the bus that left at 6:15am and arrived in Dar around 5pm. The last ferry leaves around 4pm so it was too late to catch it. I HIGHLY recommend doing some research on a decent place to stay in Dar for the night as the place I stayed in was a last resort and not in the best part of town (although very cheap and suitable for a one night layover).
As for the ferry...book your ticket in advance. You can do it online or in person. I went to the booking office yesterday at around 8:45am thinking I could catch the 9:30am ferry only to find that it was full and I had to wait in the departure terminal for 3 hours till the next one left at 12:30. Also highly recommend booking VIP/1st class. It's on only about 10,000 more each way and after the chaos of boarding you will probably be glad to have a quiet place to enjoy the 90 min ride. (Bonus: seats are plush, there's a movie and a complimentary food cart).
Best of luck.