G1 GC was designed to avoid full GC collections. One of the main design goals of G1 was to add predictability and configurability to the duration and distribution of stop-the-world GC pauses.
For instance, with G1 GC, you can specify that the stop-the-world pauses should not be longer than x ms in a y ms time range. A real example of this is by specifying that a stop-the-world pause with a G1 GC should not be more than 8 milliseconds, every 70 seconds. The G1 GC will do its best to meet this performance goal.
However, there could be a mismatch in how you configure these values and the actual pause times with the G1 GC.
A stop-the-world GC pause refers to a state when JVM applications become unresponsive because GC doesn't allow any changes when it is marking or cleaning up memory.