There are 2 separate items here. Duration is the time a task will take to complete- if you have a duration of 10 days, and achieve 50% of the task after 10 days, you still have 50% (5 days) of duration left. When project updates from % complete, it looks at the duration -this can change depending on setings but is usually the most useful way to update.
When you put a task into project it uses the calender assigned to it (5 day working by default), so a 10 day task will span weekends (non working time) but the duration will still be 10 days, so no, holidays and weekends are not included, although they will affect the start/ finish dates.
The amount of work (or effort) is effectively ( in your example) the number of man daysinvolved in a task. If you have a task that requires 10 man days of work, and assign 1 man to it, then both the effort and duration will be 10. If you assign 2 men to it, the effort will stay at 10 (as it still takes 10 man days to complete) but the duration will reduce to 5 (2 men).
For a programme where resources are not assigned, the effort and duration will be the same (as it assumes only 1 unit assigned), but you can assign more units to a task, which will reduce the duration.
For updating, yes, % complete is usually correct. In my line of work (construction) tasks almost never take as long as programmed, due to 101 different factors, and % complete allows you to show actual progress in a meaningful way. While it may knock dates out of line, it lets you see the what and when and take appropriate action.
This often means that your finish day moves like a yoyo, but thats part and parcel of being a planner