maximum delay() is 32767ms ?

In the specific case we're discussing this probably is not an answer... it was not noticing the type issues that led to the problem, after all.

But when the programmer is aware of a type issue, maybe something along the following lines would help?.....

longint k60=60;
longint k1000=1000;

delay(k60*k1000);

(Although what's in k60, k1000 could be altered, of course, I use the "k" prefix to tell myself that the variable is to be used as a konstant.)