这两个词出现在一个句子中并不矛盾,by是“到.为止”还有表示幅度,比如Thenumberofpeopelherehasincreasedby20%bynow.“到现在为止,这儿的人数增长了20%",前一个by表增长的幅度,后一个表示“到.”为止.(扯远啦,拉回来)所以你给的句子里面by是“到.为止”的意思,后面跟一个时间点而不是时间段,所以“35亿年前”就是一个时间点,即threeandahalfbillionyearsago为时间点,放在句中是没有问题的,by加时间点作状语时句子通常用完成时,句中加的是过去的时间点,所以用过去完成时.总的说来,这二者的意思有差别,所以放在一起不矛盾,只要保证语法和句意没问题就可以了