Więc wychodzi na to, że Twój skrypt nie jest taki bezbłędny

Zgodnie z tym, co napisał @nospor, podejrzewam, że odpalasz nowe zadanie jeszcze zanim poprzednie się zakończy. Pewnie gdzieś zapisujesz, że kalkulacja została już wykonana. Widocznie robisz to dopiero po zakończeniu działania zadania. Jeśli pierwsze zadanie "A" jeszcze trwa, a uruchomione zostało kolejne "B", to "B" bierze pierwszą "wolną" kalkulację. Ponieważ nie ma informacji, że kalkulacja "A" jest już obliczana, to "B" oblicza ją jeszcze raz

Oprócz "obliczono", zapisuj sobie również "w trakcie"