Wo liegt denn das Problem?
Warum rechnest du für die sekunden noch mal mit Modulo 60? Das ist doch unsinn. Math.floor(time / 60) gibt dir schon die 30, und 30 Modulo 60 ergibt nur 0 Rest 30.
Edit:
Außerdem wäre es Sinnvoller den Teil:
in eine Funktion auszulagern. Also sprich eine Funktion, die dir die Zahl mit den passenden Nullen am Anfang zurückgibt.
Halte dich ein wenig an das DRY-Prinzip.
z.B.
Das ist jetzt ein bisschen generischer, falls man sowas öfters braucht und sich die Anzahl der Ziffern ändert.
Leider bietet JavaScript von Haus aus keine Möglichkeit Strings bequem zu formatieren.