It'll be down for probably about 24 hours if you were to transfer it, they'd most likely get either a generic GoDaddy or Dreamhost screen while it's in progress. Honestly there's not any real reason to do so though, you won't gain anything in particular from doing it that I can think of.
Uhm, no, it won't. If you transfer the domain registration to another registrar, the time for it to propagate might take 24-48 hours, but all the DNS servers will still have the old registrar's information cached. You won't lose traffic.
I've been transferring all of my domains from godaddy to namecheap this past year when the renewals are nearing. Absolutely no downtime.
Note that if you want to do a name transfer, you can do it long before it actually expires and the transfer will include whatever time you pay for added on to the expiration date.
So if you transfer a domain name with 6 months left, and the transfer is for 2 years, you'll have 2 years + the 6 months.
----------
Why we want to take risk, Better we can go with same company
Registering your domain name with the same company that you host with doesn't give you any better risk management. If anything, it's more risky. What happens if the company you're with has some catastrophic event (hack, bankruptcy, etc) that prevents you from getting to the account management interfaces such that you can't control your host or your DNS entries?
At least with separate registrar and hosting, you can just light up a new host somewhere else (whether it's a VPS, colo, or what not) and go to your registrar management (e.g. namecheap, godaddy), and then change your registrant information such that the authoritative DNS is with the new company you're hosting with.