I will try to answer the first part of your question.
1. Fill your stack with some known values ....say ..0xEF
2. Allocate maximum stack for your task
3. Run your task, for maximum stack coverage...make sure it performs it's best(worst case).
4. open the stack window and check how much 0xEF's are erased...
5. This will give you an idea of, how much stack is required, for your task..
Hope this helps