Honestly, this is not a problem. If I received a headache from this I would have just gone to sleep, taken some medicine, or just took a break in general.
The recursion was caused by RenderPlayer.doRender calling the RenderPlayerEvent.Pre
if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new net.minecraftforge.client.event.RenderPlayerEvent.Pre(entity, this, partialTicks, x, y, z))) return;
To fix this just simply override RenderPlayer#doRender and use the same code but exclude that line of code.
Mind you this will just render your model with the default vanilla way so you may have to override the whole doRender method.