Technically you can stay for six months. However the decision on how long you can visit for is made by the immigration officer you encounter when you enter the country.
There's no hard and fast rule about how much money you should show. However if I was in your shoes, I would want to be able to show $1K for every month you plan to visit.
Yes - it's better to have a return flight in case they ask. The return ticket will be proof that you are only coming to Canada as a visitor and have no plans to live here (i.e. stay long term).
You can bring up to $10K without having to declare it. If you bring more, you can still take the money into Canada but have to declare it at customs.
Also carry:
employment verification letter and/or vacation approval (if you're employed)
student enrollment certificate (if you're a student) AND
full details about your Canadian friend (i.e. address, background, work info, Canadian status etc.)