Fix Escape not cancelling inline edit due to blur race
When pressing Escape, cancelInlineEdit sets inlineEditing=false which
removes the input from the DOM, triggering onblur → commitInlineEdit.
Add an inlineCancelled guard so commitInlineEdit is a no-op after
Escape, preventing unintended saves.