3rd party is always going to have ups and downs. They can make no promises because they have no guarantees of clients to provide you with work. Also, working directly for a company will always pay better because no middleman is taking a cut. There would be no doubt in my mind what to do, unless I had issues with the company/product I was working directly for. So...
1) Third party pays less due to middleman.
2) No company can promise advancement based on years of service. Advancement is based on your qualifications and open positions to advance to.
3) Either type of job can be intellectually challenging, but I suppose third party can come with new challenges each week.
4) Every employer would say they respect you, just as you would say you do a great job all the time. You won't know their culture until you work for them and they won't know your work ethic until you work for them.
Former mystery shopper, current merchandiser.