Eso no funciona porque lo que le tienes que pasar a setTimeout es una función. Lo que tú estás poniendo ahí es una llamada, una instrucción.
Lo del delay... sí, claro que puede dar problemas. Claro que es difícil saber cuánto tiempo tienes que poner. En realidad yo te lo decía sólo por probar, no como una buena solución.
¿Tienes algún sitio donde se pueda ver el problema? ¿O quizá un ejemplo completo pero sólo con eso para que lo pueda probar?