Si se trata de una aplicación web y está tratando de mantener la transacción de una página a la siguiente, no lo haga; no funcionará.
¿Qué quieres decir con "justo después"? Si no hace nada entre las dos declaraciones, incluso un tiempo de espera de 1 segundo debería ser suficiente.
mysql> SET GLOBAL innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 50 |
+----------------------------+
mysql> SET SESSION innodb_lock_wait_timeout = 1;
mysql> SELECT @@innodb_lock_wait_timeout;
+----------------------------+
| @@innodb_lock_wait_timeout |
+----------------------------+
| 1 |
+----------------------------+
Para explicar GLOBAL vs SESSION para VARIABLES:El valor GLOBAL se usa para inicializar el valor de SESSION cuando comienza su conexión. Después de eso, puede cambiar el valor de SESSION para afectar lo que está haciendo. Y cambiar el valor GLOBAL no tiene ningún efecto en su actual conexión.
Cambiar el tiempo de espera a 1 es bastante seguro (una vez que comprenda GLOBAL vs SESSION). Lo único que cambiará es la frecuencia de recibir ese error.