When you are working with IIS, PHP timeout is valid only when it's lower than script timeout defined by IIS.
IIS 5 has a default timeout of 300 seconds. If you need a higher timeout, you also have to change IIS properties. Otherwise, your server will stop your PHP script before it reaches its own timeout.