We have an application that prints small dockets all the time. The dockets are Crystal Reports. We have about 10 different docket designs and layouts.
There is no data access done from CR, we process and pass all the data to the report document as an ArrayList.
We have measured massive lag spikes in the PrintToPrinter function. As you can see in this chart, they seem to increase over time:

The blue lines show the time PrintToPrinter took to complete in seconds. Most of the time it is under 1 second but some times it takes up to 200. Orange lines are points where the application was started.
Interestingly we also tried changing PrintToPrinter with ExportToDisk (PDF) and the spikes seem to happen with a similar pattern.
This is a chart from another machine using ExportToDisk(PDF):

Some additional information:
Users report that when lag starts to happen they can "unfreeze and get it to print" by clicking repeatedly on the application surface.
There are no antivirus programs running on these machines.
This issue has been impossible to reproduce in non production environments. We only rely on logs, but it seems to happen on different environments (Windows versions, printers, PCs).
We tried caching the report document objects and it had great results on only a couple of machines but generally it was worse.