How to create a seamless animation loop in Blender?
I usually key the first frame on frame 0 and output from frame 1 onward. This has to date never failed me.

Maybe your problem has a different source, share the file if you can.

Edit: 
I rendered out the image sequence, then composed it. First, I assumed your hickup was just a slight buffering error from your video player, but then I compared the first and the last frame from the output, which were identical, causing a 2 frame hold. 

Your first and last frame of the loop must not be identical, or you will get these slight stutters. An easy solution to that problem is to either: 


push all keyframes one frame forward, so they are outside of the render area, 


or shorten the render interval by one frame.



So I pulled the last frame and rendered a video. Seems gone now.

https://youtu.be/kwSuWkUF8k4