Dont pay attention to how much it has deleted - the bulk of the job is creating a temp table in tempDB which will contain all the events we need to delete.
If you are over 1 hour per million rows as you say - I'd argue that it is likely your database is vastly undersized from an I/O perspective....
There are only two options to speed this process up other phan just plowing through it...
1. Stop the management server and RMS health, config, and SDK services, essentially shutting down the management group. This speeds up the cleanup a lot in larger management groups allowing all DB activity to be reserved for the cleanup job.
2. Stop the MS and RMS servers, and then detach the database - and attach it elsewhere on a much faster and more powerfull SQL server. You need a SQL server with REALLY good disk I/O, lots of CPU, enough memory to do the job (8GB should be fine but more is better), FAST disks where TempDB resides, and distinct disks for DB and tlog.