When a query with limit is executed, it aborts the query once the limit is satisfied. During this abort, it doesn't call BatchPrimitiveProcessorJL::destroyBPP(). This leaves unexecuted jobsteps in the prioritythreadpool's queue on PrimProc. The jobsteps have nothing to work on anymore, so they do nothing.
Since the thing they're trying to work on is missing, the code doesn't know if it's never going to be created, so it reschedules the jobsteps. Prioritythreadpool then spins trying to get these tasks completed, rescheduling over and over until a timer pops to make it give up.
If other queries arrive, there's likely no noticeable impact, but cpu cycles are being wasted.