patch 9.0.0974: even when Esc is encoded a timeout is used

Problem:    Even when Esc is encoded a timeout is used.
Solution:   Use K_ESC when an encoded Esc is found.
diff --git a/src/term.c b/src/term.c
index ba288ae..74c4612 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5121,7 +5121,19 @@
 	int	*buflen)
 {
     char_u  string[MAX_KEY_CODE_LEN + 1];
-    int	    new_slen = add_key_to_buf(arg[0], string);
+    int	    new_slen;
+
+    if (arg[0] == ESC)
+    {
+	// Putting Esc in the buffer creates ambiguity, it can be the start of
+	// an escape sequence.  Use K_ESC to avoid that.
+	string[0] = K_SPECIAL;
+	string[1] = KS_EXTRA;
+	string[2] = KE_ESC;
+	new_slen = 3;
+    }
+    else
+	new_slen = add_key_to_buf(arg[0], string);
 
     if (put_string_in_typebuf(offset, csi_len, string, new_slen,
 						 buf, bufsize, buflen) == FAIL)