hush: fix for nested $()s with escapes + testsuite

diff --git a/shell/hush.c b/shell/hush.c
index 735526a..77a3051 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -3498,6 +3498,13 @@
 			o_addqchr(dest, ch, 1);
 			continue;
 		}
+		if (ch == '\\') { /* \x. Copy verbatim. Important for  \(, \) */
+			ch = i_getch(input);
+			if (ch == EOF)
+				break;
+			o_addqchr(dest, ch, 1);
+			continue;
+		}
 	}
 }
 #endif /* ENABLE_HUSH_TICK */
@@ -3556,13 +3563,16 @@
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			break;
 #if ENABLE_HUSH_TICK
-		case '(':
+		case '(': {
+			//int pos = dest->length;
 			i_getch(input);
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			o_addchr(dest, quote_mask | '`');
 			add_till_closing_curly_brace(dest, input);
+			//bb_error_msg("RES '%s'", dest->data + pos);
 			o_addchr(dest, SPECIAL_VAR_SYMBOL);
 			break;
+		}
 #endif
 		case '-':
 		case '_':