La consulta usa el índice index_status en lugar de fk_task_userid (el índice en node_id). Esta es la razón por la que bloquea registros con otros node_ids.
Puede ejecutar la explicación en su consulta para ver cuántos registros están realmente bloqueados (en filas examinadas) frente a cuántos de ellos necesita bloquear (filas devueltas)
¿Por qué? Siento que sus índices no son óptimos de todos modos... Crear índice en node_id, estado, debería resolver el problema