Looking through the sample code, the keyer is never enabled. The sample captures video from the input channel, renders it on a cube then sends this to the output. It needs input and output channels (2x half-duplex cards or 1x 4k card) and the capture/render/blitting/outputting will be introducing the latency you observe. If you need the overlay with minimum latency - use the internal keyer (most cards have this built in) or use a card with key/fill capability and key your graphics with a vision mixer.
If this is your workflow, use the OpenGLOutput sample, enabling the card's keyer as I suggested earlier.

- Decklink SDK Manual - Keyer Interface
- Screenshot from 2016-11-08 22-21-58.png (40.72 KiB) Viewed 3150 times
Or, as Ian suggests, use CasparCG.
Regards,
Dave.