So, there is good news and bad news. Bad news first: There is precious little on by-products besides what you have already mentioned. The good new is that there is some. One paper that I do STRONGLY suggest though, because it elegantly explains how we can understand cognitive by-products such as those that give rise to religion is by Dan Sperber and Lawrence Hirschfeld:
https://www.ncbi.nlm.nih.gov/pubmed/14697402
In the paper, they outline what can be called proper and actual domains of cognitive mechanisms, and these can be used to guide how a module processes information in such a way as to make its outputs effect fitness.
The issue though is always going to be the fact that it is hard to say that X and only X resulted in a fitness increase within an evolutionary framework. This is particularly hard when dealing with human cognition given how integrated different cognitive abilities are. This is a complication that exists on top of an issue with defining fitness to begin with!
If we take the Price equation as a way to look at fitness, we still have issues of isolating what constitutes a trait and what doesn’t. These complications are one of the reasons I’ve turned to computer modelling in my study of religion. Basically, it allows for us to state all assumptions clearly, so if we are dealing with a cognitive mechanism we have to say what it is. For example: https://www.researchgate.net/publication/276913619_Method_Theory_and_Multi-Agent_Artificial_Intelligence_Creating_computer_models_of_complex_social_interaction
Furthermore, if we want to make an evolutionary argument for religion, we have to break it down and make it explicit within the computational system. This paper I teach almost in supplement to the review that you were reading of Radek Knudt’s book (which of course, I HIGHLY suggest despite my criticisms)