The issue isn't whether the cleaner has completed her tasks (although she clearly hasn't if areas of the house remain untouched)
She is paid for a certain amount of time so needs to be there working for the full amount of time. If she has a list of jobs to do, the deal will be that she completes those and then if there is still time left, she works on some extras until the end of the time, not that she nips off early.
In jobs where you are paid hourly, it is not permissible to leave early, whether you have or have not completed the task. So, if the end of your hours comes and the job isn't finished, you can still leave. If you finish your allotted jobs before the end of your hours, your stay until the end and find some extra work. The clue is in the term HOURLY PAY, rather than task based pay. It is the nature of much low paid work - hourly rates with fixed hours.
No one would suggest that shop workers who have filled their shelves before the end of their shift should go home early, or office workers who have done their days admin before the end should go home early when they are being paid until a certain time. They are expected to start on the next list of jobs, or to ask for more work or show some initiative and continue to work.
So OP should raise both issues of work not being completed, but also make clear that the cleaner is employed for the full 4 hours and she expects her to clean for 4 hours. It is what she pays for and isn't unreasonable to expect her to do it. As others say, occasional early finishes may be okay if they are requested in advance and the time is made up.