Conozco bien esa sensación, son las 10 de la noche, con una fecha límite que cumplir al día siguiente, el proyecto no está funcionando correctamente, con un bug que aparentemente aparece al azar, y todavía hay un par de funciones que escribir. (¡Cuántas veces me he prometido a mí mismo que esto no volverá a ocurrir!).
Olvídate de todas las sugerencias de café fuerte o cosas por el estilo, eso sólo te pone nervioso. Lo que tienes que hacer es obligarte a tomarte al menos media hora de descanso. Yo encuentro que un paseo al aire libre suele funcionar, intentando despejar mi cabeza de todos los pensamientos del proyecto, e intentando pensar en cosas "agradables". Hay un truco que utilizo durante este tiempo, y es preguntarme si el mundo se va a acabar si no cumplo ese plazo. Si la respuesta es no, (y normalmente lo es), entonces vuelvo al trabajo con la cabeza despejada, y con la opción de llamar al cliente por la mañana y explicarle cuál es la situación. Si son mínimamente humanos, lo entenderán.
Si estás muy cansado y no hay una fecha límite, entonces no intentes seguir trabajando. Vete a casa, tómate algo caliente y acuéstate.
Yo tengo lo que llamo mi punto de "Eddy el loco". Ese es el punto en el que he cometido tres errores estúpidos, y sé que continuar será una pérdida de tiempo. Ese es el punto en el que te vas a casa, o a dar un paseo.