My thoughts on limiting reproduction:
We can impose some extra-time being required between reproduction events. It would be a bit artificial, but you can make it proportional to the length of DNA, so that it would be "time to copy DNA".
We can also impose some minimal nrg level for a bot to be alive. Say if nrg falls below 10, then the bot dies. Again, this is an imposed rule and we don't like that, but here some logical approach: We used to have a rule (not sure if still do) that if a bot looses more than 25% (or something like that) of its energy in a single cycle, then it dies of "shock". Well, make reproduction cost something, some small amount, say 3 nrg and charge it to both parent and off-spring. Then if a very small bot repros, it looses >25% of its energy and dies.