If you charge for the job to the customer then you have a greater chance of growing your business and making more money.
If you charge by the hour then the customer can easily compare prices and you won't be able to employ a better more experienced cleaner, you will effectively be stuck with bad to average cleaners as the better cleaners will be off working for somebody else for more money.
A good cleaner can do the same job better and in half the time of a bad cleaner. The problem is that if the customer is paying for two hours work then the good cleaner is tied up at the job for the full two hours twiddling their thumbs and dragging the job out for the two hours. They are effectively not being paid what they are 'worth', they are paid exactly the same amount as a 'bad' cleaner.
If you charge by the job then a good cleaner can do the job and then get on to the next job, earning themselves more money and earning you more money. It also allows a bad / slow cleaner to still work for the full two hours effectively earning less money (minimum wage). If they went over the two hours then you would have to put in measures to find out why and if necessary start disciplinary proceedings. If a good cleaner does the job in 1 hour then a bad cleaner shouldn't take longer than 2 hours.
I'd question whether it's an effective way to work to have two cleaners at a two hour job. Maybe on the bigger jobs but smaller jobs the travelling time between the jobs could add up to a couple of hours a day. It also will make a good cleaner have to do more work to 'carry' the other cleaner (if the other one is slow), something that's likely to lead to the good cleaner quitting.
Chris.