Every edit results in a ParsoidCacheUpdateJob. Every time a template is edited which has more than 20 pages that use it, ParsoidCacheUpdateJob purges the cache of those pages by queueing htmlCacheUpdate jobs.
This is because ParsoidCacheUpdateJob extends from HTMLCacheUpdateJob. It calls doFullUpdate(), which is not overridden, which calls insertPartitionJobs(), which is also not overridden, which inserts the relevant htmlCacheUpdate jobs. I've confirmed this with strace/eval.php in production.
HTMLCacheUpdateJob was not intended for subclassing. Trying to override almost every method of a class in order to use the remaining behaviour is error-prone. I think you should either derive directly from Job (with some duplication), or factor out an abstract base class which would be common to both HTMLCacheUpdateJob and ParsoidCacheUpdateJob.