I think the cleanup is working as planned. Whether you (we) agree with the design is another matter! Having tripped over this before, I now think of the cleanup task as a pretty dumb shell script, that searches for all files with the specified file extension, up to one subfolder deep, and deletes all old files.
The simplest workaround I know is to separate out your backups into folders (at the same level), and then create a cleanup task for each folder. Unfortunately this involves creating multiple cleanup tasks. Still, at least you can see what is happening.