According to this Oracle document, GCLocker Initiated GC is triggered when a JNI critical region was released. GC is blocked when any thread is in the JNI Critical region. If GC was requested during that period, that GC is invoked after all the threads come out of the JNI critical region.
What part of Cassandra's implementation does anything with JNI? In our GC logs, this is by far the most common reason for GC pauses.