The main difference between "it takes" and "it lasts" is WHO is doing the action. For example, if I was going to a concert, the musicians are the ones doing the action (performing music) so I would say "The concert lasts two hours". When we say "it takes", we are generally insinuating that we are involved somehow in the action. For example, "The flight to Manila from LAX takes 17 hours". Since I am actually on the flight and it is me doing the action (travelling) then it "takes" that amount of time. Here are some other examples.
A cold usually lasts only a few days.
A tank of gas usually lasts me about 500 miles.
It takes me about two years to learn a foreign language.
It takes a lot of effort to be a Doctor in the USA.
In your second question...
"Be long" means we have not been waiting for this person or event for a long time.
"Much longer" indicates that we have already waited a long time and the person or event still has yet to show up or complete.
The main difference is that one implies that we have not already been waiting where the other implies that we have been waiting some time.
Hope that helps!