Если вам это так важно - уверен, что стоит почитать про "транзакции в монго". Или, даже, перейти на SQL-базы данных, где они реализованы значительно комфортнее
Поставьте console.log( counter++ ) в вашей periodicFunction, посмотрите, сколько раз она реально вызывается. setTimeout и setInterval не жрут процессор сами по себе, тем более до 40%.