diff --git a/src/testdir/term_util.vim b/src/testdir/term_util.vim
index 32e2889..715a4ac 100644
--- a/src/testdir/term_util.vim
+++ b/src/testdir/term_util.vim
@@ -24,6 +24,21 @@
   call WaitFor({-> job_status(job) == "dead"})
 endfunc
 
+" Wrapper around term_wait() to allow more time for re-runs of flaky tests
+" The second argument is the minimum time to wait in msec, 10 if omitted.
+func TermWait(buf, ...)
+  let wait_time = a:0 ? a:1 : 10
+  if g:run_nr == 2
+    let wait_time *= 4
+  elseif g:run_nr > 2
+    let wait_time *= 10
+  endif
+  call term_wait(a:buf, wait_time)
+
+  " In case it wasn't set yet.
+  let g:test_is_flaky = 1
+endfunc
+
 " Run Vim with "arguments" in a new terminal window.
 " By default uses a size of 20 lines and 75 columns.
 " Returns the buffer number of the terminal.
@@ -82,7 +97,7 @@
     let cols = term_getsize(buf)[1]
   endif
 
-  call term_wait(buf)
+  call TermWait(buf)
 
   " Wait for "All" or "Top" of the ruler to be shown in the last line or in
   " the status line of the last window. This can be quite slow (e.g. when
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index d73a3cc..aa81b57 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -518,7 +518,7 @@
   call term_sendkeys(buf, ":set nomore\n")
   call term_sendkeys(buf, ":args a b c\n")
   call term_sendkeys(buf, ":quit\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E173:', term_getline(buf, 6))})
   call StopVimInTerminal(buf)
 
@@ -527,16 +527,16 @@
   call term_sendkeys(buf, ":set nomore\n")
   call term_sendkeys(buf, ":args a b c\n")
   call term_sendkeys(buf, ":confirm quit\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$',
         \ term_getline(buf, 6))})
   call term_sendkeys(buf, "N")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, ":confirm quit\n")
   call WaitForAssert({-> assert_match('^\[Y\]es, (N)o: *$',
         \ term_getline(buf, 6))})
   call term_sendkeys(buf, "Y")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_equal("finished", term_getstatus(buf))})
   only!
   " When this test fails, swap files are left behind which breaks subsequent
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index f798916..a8648f8 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1761,9 +1761,9 @@
   augroup END
   let s:li = []
   let s:dir_this = getcwd()
-  let s:dir_foo = s:dir_this . '/foo'
+  let s:dir_foo = s:dir_this . '/Xfoo'
   call mkdir(s:dir_foo)
-  let s:dir_bar = s:dir_this . '/bar'
+  let s:dir_bar = s:dir_this . '/Xbar'
   call mkdir(s:dir_bar)
 endfunc
 
@@ -2291,9 +2291,9 @@
   call WaitForAssert({-> assert_match('^xxx', term_getline(buf, 6))}, 1000)
 
   call term_sendkeys(buf, ":let g:again = ''\<CR>:call CallTimer()\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":echo g:again\<CR>")
   call WaitForAssert({-> assert_match('xtx', term_getline(buf, 6))}, 1000)
 
@@ -2317,7 +2317,7 @@
   let buf = RunVimInTerminal('-S '.filename, #{rows: 6})
 
   call term_sendkeys(buf, "q:")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, ":echo b:dummy_var\<cr>")
   call WaitForAssert({-> assert_match('^This is a dummy', term_getline(buf, 6))}, 2000)
   call term_sendkeys(buf, ":echo &buftype\<cr>")
diff --git a/src/testdir/test_balloon.vim b/src/testdir/test_balloon.vim
index f32b73c..bb22f7b 100644
--- a/src/testdir/test_balloon.vim
+++ b/src/testdir/test_balloon.vim
@@ -32,14 +32,14 @@
 
   " Check that the balloon shows up after a mouse move
   let buf = RunVimInTerminal('-S XTest_beval', {'rows': 10, 'cols': 50})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, 'll')
   call term_sendkeys(buf, ":call Trigger()\<CR>")
   call VerifyScreenDump(buf, 'Test_balloon_eval_term_01', {})
 
   " Make sure the balloon still shows after 'updatetime' passed and CursorHold
   " was triggered.
-  call term_wait(buf, 300)
+  call TermWait(buf, 150)
   call VerifyScreenDump(buf, 'Test_balloon_eval_term_01a', {})
 
   " clean up
@@ -57,7 +57,7 @@
 
   " Check that the balloon shows up after a mouse move
   let buf = RunVimInTerminal('-S XTest_beval_visual', {'rows': 10, 'cols': 50})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call VerifyScreenDump(buf, 'Test_balloon_eval_term_02', {})
 
   " clean up
diff --git a/src/testdir/test_bufline.vim b/src/testdir/test_bufline.vim
index 3c3c89c..a863ba5 100644
--- a/src/testdir/test_bufline.vim
+++ b/src/testdir/test_bufline.vim
@@ -164,7 +164,7 @@
   END
   call writefile(lines, 'XscriptMatchCommon')
   let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 10})
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_appendbufline_1', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index dac90aa..0cabd5c 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -1062,7 +1062,7 @@
   END
   call writefile(lines, 'XtestBufferScroll')
   let buf = RunVimInTerminal('-S XtestBufferScroll', #{rows: 10})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call VerifyScreenDump(buf, 'Test_job_buffer_scroll_1', {})
 
   " clean up
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index e2b7fc2..8aabaa8 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -947,7 +947,7 @@
   call writefile(lines, 'XTest_verbose')
 
   let buf = RunVimInTerminal('-S XTest_verbose', {'rows': 12})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":DoSomething\<CR>")
   call VerifyScreenDump(buf, 'Test_verbose_option_1', {})
 
@@ -1024,7 +1024,7 @@
   call writefile(lines, 'XTest_restore')
 
   let buf = RunVimInTerminal('-S XTest_restore', {'rows': 12})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "q:")
   call VerifyScreenDump(buf, 'Test_cmdwin_restore_1', {})
 
@@ -1146,7 +1146,7 @@
 
   call writefile(lines, 'XtestCmdlineClearTabenter')
   let buf = RunVimInTerminal('-S XtestCmdlineClearTabenter', #{rows: 10})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
   " in one tab make the command line higher with CTRL-W -
   call term_sendkeys(buf, ":tabnew\<cr>\<C-w>-\<C-w>-gtgt")
   call VerifyScreenDump(buf, 'Test_cmdlineclear_tabenter', {})
diff --git a/src/testdir/test_conceal.vim b/src/testdir/test_conceal.vim
index af0c3b8..bf942b7 100644
--- a/src/testdir/test_conceal.vim
+++ b/src/testdir/test_conceal.vim
@@ -147,7 +147,7 @@
   call VerifyScreenDump(buf, 'Test_conceal_resize_01', {})
 
   call win_execute(buf->win_findbuf()[0], 'wincmd +')
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_conceal_resize_02', {})
 
   " clean up
diff --git a/src/testdir/test_cursorline.vim b/src/testdir/test_cursorline.vim
index d4a03af..03e7306 100644
--- a/src/testdir/test_cursorline.vim
+++ b/src/testdir/test_cursorline.vim
@@ -135,41 +135,41 @@
   call writefile(lines, filename)
   " basic test
   let buf = RunVimInTerminal('-S '. filename, #{rows: 20})
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_1', {})
   call term_sendkeys(buf, "fagj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_2', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_3', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_4', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_5', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_6', {})
   " test with set list and cursorlineopt containing number
   call term_sendkeys(buf, "gg0")
   call term_sendkeys(buf, ":set list cursorlineopt+=number listchars=space:-\<cr>")
   call VerifyScreenDump(buf, 'Test_'. filename. '_7', {})
   call term_sendkeys(buf, "fagj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_8', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_9', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_10', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_11', {})
   call term_sendkeys(buf, "gj")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_'. filename. '_12', {})
   if exists("+foldcolumn") && exists("+signcolumn") && exists("+breakindent")
     " test with set foldcolumn signcoloumn and breakindent
@@ -177,19 +177,19 @@
     call term_sendkeys(buf, ":set breakindent foldcolumn=2 signcolumn=yes\<cr>")
     call VerifyScreenDump(buf, 'Test_'. filename. '_13', {})
     call term_sendkeys(buf, "fagj")
-    call term_wait(buf)
+    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_14', {})
     call term_sendkeys(buf, "gj")
-    call term_wait(buf)
+    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_15', {})
     call term_sendkeys(buf, "gj")
-    call term_wait(buf)
+    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_16', {})
     call term_sendkeys(buf, "gj")
-    call term_wait(buf)
+    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_17', {})
     call term_sendkeys(buf, "gj")
-    call term_wait(buf)
+    call TermWait(buf)
     call VerifyScreenDump(buf, 'Test_'. filename. '_18', {})
   endif
 
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 8ba3998..a99154a 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -8,7 +8,7 @@
 " If the expected output argument is supplied, then check for it.
 func RunDbgCmd(buf, cmd, ...)
   call term_sendkeys(a:buf, a:cmd . "\r")
-  call term_wait(a:buf, 20)
+  call TermWait(a:buf)
 
   if a:0 != 0
     " Verify the expected output
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index 07aa919..a251d3f 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -801,7 +801,7 @@
   call term_sendkeys(a:buf, ":diffupdate!\<CR>")
   " trailing : for leaving the cursor on the command line
   call term_sendkeys(a:buf, ":set diffopt=internal,filler" . a:extra . "\<CR>:")
-  call term_wait(a:buf)
+  call TermWait(a:buf)
   call VerifyScreenDump(a:buf, a:dumpfile, {})
 endfunc
 
diff --git a/src/testdir/test_display.vim b/src/testdir/test_display.vim
index f439bfe..1093641 100644
--- a/src/testdir/test_display.vim
+++ b/src/testdir/test_display.vim
@@ -174,7 +174,7 @@
   call writefile(lines, filename)
   let buf = RunVimInTerminal('-S '.filename, #{rows: 5, cols: 50})
   call term_sendkeys(buf, "k")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_winline_rnu', {})
 
   " clean up
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index 2cf9006..3b9e34c 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -1858,15 +1858,6 @@
 func Test_state()
   CheckRunVimInTerminal
 
-  " In the first run try a short wait time.  If the test fails retry with a
-  " longer wait time.
-  if g:run_nr == 1
-    let wait_time = 50
-  elseif g:run_nr == 2
-    let wait_time = 200
-  else
-    let wait_time = 500
-  endif
   let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>"
 
   let lines =<< trim END
@@ -1888,27 +1879,27 @@
 
   " Using a timer callback
   call term_sendkeys(buf, ":call RunTimer()\<CR>")
-  call term_wait(buf, wait_time)
+  call TermWait(buf, 25)
   call term_sendkeys(buf, getstate)
   call WaitForAssert({-> assert_match('state: c; mode: n', term_getline(buf, 6))}, 1000)
 
   " Halfway a mapping
   call term_sendkeys(buf, ":call RunTimer()\<CR>;")
-  call term_wait(buf, wait_time)
+  call TermWait(buf, 25)
   call term_sendkeys(buf, ";")
   call term_sendkeys(buf, getstate)
   call WaitForAssert({-> assert_match('state: mSc; mode: n', term_getline(buf, 6))}, 1000)
 
   " Insert mode completion (bit slower on Mac)
   call term_sendkeys(buf, ":call RunTimer()\<CR>Got\<C-N>")
-  call term_wait(buf, wait_time)
+  call TermWait(buf, 25)
   call term_sendkeys(buf, "\<Esc>")
   call term_sendkeys(buf, getstate)
   call WaitForAssert({-> assert_match('state: aSc; mode: i', term_getline(buf, 6))}, 1000)
 
   " Autocommand executing
   call term_sendkeys(buf, ":set filetype=foobar\<CR>")
-  call term_wait(buf, wait_time)
+  call TermWait(buf, 25)
   call term_sendkeys(buf, getstate)
   call WaitForAssert({-> assert_match('state: xS; mode: n', term_getline(buf, 6))}, 1000)
 
@@ -1916,7 +1907,7 @@
 
   " messages scrolled
   call term_sendkeys(buf, ":call RunTimer()\<CR>:echo \"one\\ntwo\\nthree\"\<CR>")
-  call term_wait(buf, wait_time)
+  call TermWait(buf, 25)
   call term_sendkeys(buf, "\<CR>")
   call term_sendkeys(buf, getstate)
   call WaitForAssert({-> assert_match('state: Scs; mode: r', term_getline(buf, 6))}, 1000)
diff --git a/src/testdir/test_highlight.vim b/src/testdir/test_highlight.vim
index dfc9e24..73b7228 100644
--- a/src/testdir/test_highlight.vim
+++ b/src/testdir/test_highlight.vim
@@ -542,9 +542,9 @@
 	\ 'call setline(1, ["","1","2","3",""])',
 	\ ], 'Xtest_cursorline_yank')
   let buf = RunVimInTerminal('-S Xtest_cursorline_yank', {'rows': 8})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "Gy3k")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "jj")
 
   call VerifyScreenDump(buf, 'Test_cursorline_yank_01', {})
@@ -582,7 +582,7 @@
 	\ 'call setline(1, repeat(["abc"], 50))',
 	\ ], 'Xtest_cursorline_with_visualmode')
   let buf = RunVimInTerminal('-S Xtest_cursorline_with_visualmode', {'rows': 12})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "V\<C-f>kkkjk")
 
   call VerifyScreenDump(buf, 'Test_cursorline_with_visualmode_01', {})
@@ -610,9 +610,9 @@
   END
   call writefile(lines, 'Xtest_wincolor')
   let buf = RunVimInTerminal('-S Xtest_wincolor', {'rows': 8})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "2G5lvj")
-  call term_wait(buf)
+  call TermWait(buf)
 
   call VerifyScreenDump(buf, 'Test_wincolor_01', {})
 
@@ -662,7 +662,7 @@
   call writefile(lines, 'Xtest_colorcolumn')
   let buf = RunVimInTerminal('-S Xtest_colorcolumn', {'rows': 10})
   call term_sendkeys(buf, ":\<CR>")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_colorcolumn_1', {})
 
   " clean up
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index b7893ff..a1c7b98 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -402,7 +402,7 @@
 
   call writefile(lines, 'Xpumscript')
   let buf = RunVimInTerminal('-S Xpumscript', #{rows: 10})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "a\<C-N>")
   call VerifyScreenDump(buf, 'Test_pum_with_folds_two_tabs', {})
 
@@ -427,9 +427,9 @@
 
   call writefile(lines, 'Xpreviewscript')
   let buf = RunVimInTerminal('-S Xpreviewscript', #{rows: 12})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "Gi\<C-X>\<C-O>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, "\<C-N>")
   call VerifyScreenDump(buf, 'Test_pum_with_preview_win', {})
 
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
index 71f254a..f6e7124 100644
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -430,9 +430,9 @@
 
   " GC must not run during map-expr processing, which can make Vim crash.
   call term_sendkeys(buf, '!')
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call assert_equal('run', job_status(job))
 
   call term_sendkeys(buf, ":qall!\<CR>")
@@ -510,7 +510,7 @@
   END
   call writefile(lines, 'XtestExprMap')
   let buf = RunVimInTerminal('-S XtestExprMap', #{rows: 10})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "\<C-B>")
   call VerifyScreenDump(buf, 'Test_map_expr_1', {})
 
diff --git a/src/testdir/test_match.vim b/src/testdir/test_match.vim
index 59098f7..cd8ae2e 100644
--- a/src/testdir/test_match.vim
+++ b/src/testdir/test_match.vim
@@ -289,7 +289,7 @@
   END
   call writefile(lines, 'XscriptMatchCommon')
   let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 12})
-  call term_wait(buf)
+  call TermWait(buf)
   return buf
 endfunc
 
diff --git a/src/testdir/test_matchadd_conceal.vim b/src/testdir/test_matchadd_conceal.vim
index 7c02087..be15464 100644
--- a/src/testdir/test_matchadd_conceal.vim
+++ b/src/testdir/test_matchadd_conceal.vim
@@ -298,14 +298,14 @@
   END
   call writefile(lines, 'Xcolesearch')
   let buf = RunVimInTerminal('Xcolesearch', {})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
 
   " Jump to something that is beyond the bottom of the window,
   " so there's a scroll down.
   call term_sendkeys(buf, ":so %\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "/expr\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
 
   " Are the concealed parts of the current line really hidden?
   let cursor_row = term_scrape(buf, '.')->map({_, e -> e.chars})->join('')
@@ -335,7 +335,7 @@
   " Horizontal scroll would center the cursor in the screen line, but conceal
   " makes it go to screen column 1.
   call term_sendkeys(buf, "$")
-  call term_wait(buf)
+  call TermWait(buf)
 
   " Are the concealed parts of the current line really hidden?
   call WaitForAssert({-> assert_equal('c', term_getline(buf, '.'))})
diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim
index 23e7735..90d0d20 100644
--- a/src/testdir/test_messages.vim
+++ b/src/testdir/test_messages.vim
@@ -114,7 +114,7 @@
 
   let rows = 10
   let buf = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows})
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call assert_equal('run', job_status(term_getjob(buf)))
 
   call term_sendkeys(buf, "i")
@@ -143,7 +143,7 @@
 
   let rows = 10
   let buf = term_start([GetVimProg(), '--clean', '-S', testfile], {'term_rows': rows})
-  call term_wait(buf, 200)
+  call WaitForAssert({-> assert_match('0,0-1\s*All$', term_getline(buf, rows - 1))})
   call assert_equal('run', job_status(term_getjob(buf)))
 
   call term_sendkeys(buf, "i")
diff --git a/src/testdir/test_number.vim b/src/testdir/test_number.vim
index fef187b..17a1e35 100644
--- a/src/testdir/test_number.vim
+++ b/src/testdir/test_number.vim
@@ -280,7 +280,7 @@
 
   " Check that the balloon shows up after a mouse move
   let buf = RunVimInTerminal('-S XTest_relnr', {'rows': 10, 'cols': 50})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   " Default colors
   call VerifyScreenDump(buf, 'Test_relnr_colors_1', {})
 
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 4ca35b2..e96d5fd 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -683,11 +683,11 @@
 
   call term_sendkeys(buf, "Gi\<c-x>")
   call term_sendkeys(buf, "\<c-v>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   " popup first entry "!" must be at the top
   call WaitForAssert({-> assert_match('^!\s*$', term_getline(buf, 1))})
   exe 'resize +' . (h - 1)
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   redraw!
   " popup shifted down, first line is now empty
   call WaitForAssert({-> assert_equal('', term_getline(buf, 1))})
@@ -750,11 +750,11 @@
   let buf = RunVimInTerminal('-S Xscript', {})
 
   " wait for the script to finish
-  call term_wait(buf)
+  call TermWait(buf)
 
   " Test that popup and previewwindow do not overlap.
   call term_sendkeys(buf, "o")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "\<C-X>\<C-N>")
   call VerifyScreenDump(buf, 'Test_popup_and_previewwindow_01', {})
 
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 478e9d4..03285f9 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -65,9 +65,9 @@
 
   " clear all popups after moving the cursor a bit, so that ruler is updated
   call term_sendkeys(buf, "axxx\<Esc>")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "0")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, ":call popup_clear()\<CR>")
   call VerifyScreenDump(buf, 'Test_popupwin_08', {})
 
@@ -1389,7 +1389,7 @@
   END
   call writefile(lines, 'XtestPopupBeval')
   let buf = RunVimInTerminal('-S XtestPopupBeval', #{rows: 10})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, 'j')
   call term_sendkeys(buf, ":call Hover()\<CR>")
   call VerifyScreenDump(buf, 'Test_popupwin_beval_1', {})
@@ -2958,7 +2958,7 @@
   call writefile(lines, 'XtestInfoPopup')
 
   let buf = RunVimInTerminal('-S XtestInfoPopup', #{rows: 14})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   call term_sendkeys(buf, "A\<C-X>\<C-U>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_1', {})
@@ -3006,7 +3006,7 @@
   call writefile(lines, 'XtestInfoPopupNb')
 
   let buf = RunVimInTerminal('-S XtestInfoPopupNb', #{rows: 14})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   call term_sendkeys(buf, "A\<C-X>\<C-U>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_nb_1', {})
@@ -3024,7 +3024,7 @@
   call writefile(lines, 'XtestInfoPopupNb')
 
   let buf = RunVimInTerminal('-S XtestInfoPopupNb', #{rows: 14})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   call term_sendkeys(buf, "A\<C-X>\<C-U>")
   call term_sendkeys(buf, "\<C-N>")
@@ -3055,7 +3055,7 @@
   call writefile(lines, 'XtestInfoPopupHidden')
 
   let buf = RunVimInTerminal('-S XtestInfoPopupHidden', #{rows: 14})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   call term_sendkeys(buf, "A\<C-X>\<C-U>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_hidden_1', {})
@@ -3113,7 +3113,7 @@
 
   call writefile(lines, 'XtestInfoPopupWide')
   let buf = RunVimInTerminal('-S XtestInfoPopupWide', #{rows: 8})
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   call term_sendkeys(buf, "Ascr\<C-X>\<C-O>")
   call VerifyScreenDump(buf, 'Test_popupwin_infopopup_wide_1', {})
diff --git a/src/testdir/test_profile.vim b/src/testdir/test_profile.vim
index 5f3f7cb..7018ea5 100644
--- a/src/testdir/test_profile.vim
+++ b/src/testdir/test_profile.vim
@@ -541,7 +541,7 @@
 	\ .. "endfunc\<CR>")
   call term_sendkeys(buf, ":profile func DoSomething\<CR>")
   call term_sendkeys(buf, ":call DoSomething()\<CR>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call StopVimInTerminal(buf)
   let lines = readfile('XprofileTypedFunc')
   call assert_equal("FUNCTION  DoSomething()", lines[0])
diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim
index b17e450..fcbadfd 100644
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -672,7 +672,7 @@
   call term_sendkeys(buf, "/vim\<cr>")
   call term_sendkeys(buf, "/b\<esc>")
   call term_sendkeys(buf, "gg0")
-  call term_wait(buf, 500)
+  call TermWait(buf, 250)
   let screen_line = term_scrape(buf, 1)
   let [a0,a1,a2,a3] = [screen_line[3].attr, screen_line[4].attr,
         \ screen_line[18].attr, screen_line[19].attr]
@@ -792,12 +792,12 @@
 
   call WaitForAssert({-> assert_equal(lines, [term_getline(buf, 1), term_getline(buf, 2)])})
   " wait for vim to complete initialization
-  call term_wait(buf)
+  call TermWait(buf)
 
   " Get attr of normal(a0), incsearch(a1), hlsearch(a2) highlight
   call term_sendkeys(buf, ":set incsearch hlsearch\<cr>")
   call term_sendkeys(buf, '/b')
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   let screen_line1 = term_scrape(buf, 1)
   call assert_true(len(screen_line1) > 2)
   " a0: attr_normal
@@ -813,7 +813,7 @@
 
   " Test incremental highlight search
   call term_sendkeys(buf, "/vim")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   " Buffer:
   " abb vim vim vi
   " vimvivim
@@ -825,7 +825,7 @@
 
   " Test <C-g>
   call term_sendkeys(buf, "\<C-g>\<C-g>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
   let attr_line2 = [a1,a1,a1,a0,a0,a2,a2,a2]
   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
@@ -833,7 +833,7 @@
 
   " Test <C-t>
   call term_sendkeys(buf, "\<C-t>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a1,a1,a1,a0,a0,a0]
   let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
@@ -841,7 +841,7 @@
 
   " Type Enter and a1(incsearch highlight) should become a2(hlsearch highlight)
   call term_sendkeys(buf, "\<cr>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   let attr_line1 = [a0,a0,a0,a0,a2,a2,a2,a0,a2,a2,a2,a0,a0,a0]
   let attr_line2 = [a2,a2,a2,a0,a0,a2,a2,a2]
   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
@@ -851,7 +851,7 @@
   call term_sendkeys(buf, ":1\<cr>")
   call term_sendkeys(buf, ":set nohlsearch\<cr>")
   call term_sendkeys(buf, "/vim")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   let attr_line1 = [a0,a0,a0,a0,a1,a1,a1,a0,a0,a0,a0,a0,a0,a0]
   let attr_line2 = [a0,a0,a0,a0,a0,a0,a0,a0]
   call assert_equal(attr_line1, map(term_scrape(buf, 1)[:len(attr_line1)-1], 'v:val.attr'))
diff --git a/src/testdir/test_search_stat.vim b/src/testdir/test_search_stat.vim
index 3d60716..9bd2404 100644
--- a/src/testdir/test_search_stat.vim
+++ b/src/testdir/test_search_stat.vim
@@ -202,12 +202,12 @@
   END
   call writefile(lines, 'Xsearchstat')
   let buf = RunVimInTerminal('-S Xsearchstat', #{rows: 10})
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_1', {})
 
   call term_sendkeys(buf, ":nnoremap <silent> n n\<cr>")
   call term_sendkeys(buf, "gg0n")
-  call term_wait(buf)
+  call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_searchstat_2', {})
 
   call StopVimInTerminal(buf)
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index f532c43..5eff1bd 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -795,9 +795,9 @@
   let cmd = GetVimCommandCleanTerm() . ' -u Xvimrc_missing -S Xafter'
   let buf = term_start(cmd, {'term_rows' : 10})
   call WaitForAssert({-> assert_equal("running", term_getstatus(buf))})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "\n:")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match(':', term_getline(buf, 10))})
   call StopVimInTerminal(buf)
   call assert_equal([], readfile('Xtestout'))
diff --git a/src/testdir/test_startup_utf8.vim b/src/testdir/test_startup_utf8.vim
index 1b3d218..8f969d3 100644
--- a/src/testdir/test_startup_utf8.vim
+++ b/src/testdir/test_startup_utf8.vim
@@ -74,7 +74,7 @@
 	\ 'redraw',
 	\ ], 'Xscript')
   let buf = RunVimInTerminal('-S Xscript', {})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "S\<C-R>=&ambiwidth\<CR>\<Esc>")
   call WaitForAssert({-> assert_match('single', term_getline(buf, 1))})
 
diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim
index ebfe8aa..449cf80 100644
--- a/src/testdir/test_statusline.vim
+++ b/src/testdir/test_statusline.vim
@@ -406,7 +406,7 @@
   call writefile(lines, 'XTest_statusline')
 
   let buf = RunVimInTerminal('-S XTest_statusline', {'rows': 10, 'cols': 50})
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call VerifyScreenDump(buf, 'Test_statusline_1', {})
 
   " clean up
diff --git a/src/testdir/test_suspend.vim b/src/testdir/test_suspend.vim
index 4b3bd5e..39ae32d 100644
--- a/src/testdir/test_suspend.vim
+++ b/src/testdir/test_suspend.vim
@@ -53,7 +53,7 @@
 
   " Quit gracefully to dump coverage information.
   call term_sendkeys(buf, ":qall!\<CR>")
-  call term_wait(buf)
+  call TermWait(buf)
   " Wait until Vim actually exited and shell shows a prompt
   call WaitForAssert({-> assert_match('[$#] $', term_getline(buf, '.'))})
   call StopShellInTerminal(buf)
diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim
index 612832c..7889d4b 100644
--- a/src/testdir/test_swap.vim
+++ b/src/testdir/test_swap.vim
@@ -363,14 +363,14 @@
   call term_sendkeys(buf, ":set nomore\n")
   call term_sendkeys(buf, ":set noruler\n")
   call term_sendkeys(buf, ":split Xfile1\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^\[O\]pen Read-Only, (E)dit anyway, (R)ecover, (Q)uit, (A)bort: $', term_getline(buf, 20))})
   call term_sendkeys(buf, "q")
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, ":\<CR>")
   call WaitForAssert({-> assert_match('^:$', term_getline(buf, 20))})
   call term_sendkeys(buf, ":echomsg winnr('$')\<CR>")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^1$', term_getline(buf, 20))})
   call StopVimInTerminal(buf)
   %bwipe!
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index 6b73239..9952600 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -544,7 +544,7 @@
   call writefile(lines, 'XTest_tselect')
   let buf = RunVimInTerminal('-S XTest_tselect', {'rows': 10, 'cols': 50})
 
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":tselect main\<CR>2\<CR>")
   call VerifyScreenDump(buf, 'Test_tselect_1', {})
 
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index eb83c6b..dc488cb 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -44,7 +44,7 @@
   call assert_notmatch('%[^\n]*running]', execute('ls ?'))
 
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   call assert_equal('n', mode())
   call assert_match('%aF[^\n]*finished]', execute('ls'))
   call assert_match('%aF[^\n]*finished]', execute('ls F'))
@@ -79,7 +79,7 @@
 func Test_terminal_make_change()
   let buf = Run_shell_in_terminal({})
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
 
   setlocal modifiable
   exe "normal Axxx\<Esc>"
@@ -117,10 +117,10 @@
 
 func Test_terminal_split_quit()
   let buf = Run_shell_in_terminal({})
-  call term_wait(buf)
+  call TermWait(buf)
   split
   quit!
-  call term_wait(buf)
+  call TermWait(buf)
   sleep 50m
   call assert_equal('run', job_status(g:job))
 
@@ -225,7 +225,7 @@
   " Nothing happens with invalid buffer number
   call term_wait(1234)
 
-  call term_wait(buf)
+  call TermWait(buf)
   " On MS-Windows we first get a startup message of two lines, wait for the
   " "cls" to happen, after that we have one line with three characters.
   call WaitForAssert({-> assert_equal(3, len(term_scrape(buf, 1)))})
@@ -234,7 +234,7 @@
   " Must still work after the job ended.
   let job = term_getjob(buf)
   call WaitForAssert({-> assert_equal("dead", job_status(job))})
-  call term_wait(buf)
+  call TermWait(buf)
   call Check_123(buf)
 
   exe buf . 'bwipe'
@@ -270,7 +270,7 @@
 
   let job = term_getjob(buf)
   call WaitForAssert({-> assert_equal("dead", job_status(job))})
-  call term_wait(buf)
+  call TermWait(buf)
 
   exe buf . 'bwipe'
   call delete('Xtext')
@@ -287,7 +287,7 @@
 
   let job = term_getjob(buf)
   call WaitForAssert({-> assert_equal("dead", job_status(job))})
-  call term_wait(buf)
+  call TermWait(buf)
 
   " wait until the scrolling stops
   while 1
@@ -325,7 +325,7 @@
   call assert_inrange(91, 100, lines)
 
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
   set termwinscroll&
   call delete('Xtext')
@@ -359,10 +359,10 @@
 
   " stop "tail -f"
   call term_sendkeys(buf, "\<C-C>")
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
   " stop shell
   call term_sendkeys(buf, "exit\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   " close terminal window
   let tsk_ret = term_sendkeys(buf, ":q\<CR>")
 
@@ -622,7 +622,7 @@
   else
     call term_sendkeys(buf, "echo $" . a:name . "\r")
   endif
-  call term_wait(buf)
+  call TermWait(buf)
   call StopShellInTerminal(buf)
   call WaitForAssert({-> assert_equal(a:value, getline(2))})
 
@@ -639,7 +639,7 @@
   else
     call term_sendkeys(buf, "echo $TESTENV\r")
   endif
-  eval buf->term_wait()
+  eval buf->TermWait()
   call StopShellInTerminal(buf)
   call WaitForAssert({-> assert_equal('correct', getline(2))})
 
@@ -688,7 +688,7 @@
 
   let g:job = term_getjob(buf)
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   unlet g:job
   bwipe
 endfunc
@@ -813,7 +813,7 @@
 func Test_terminal_redir_file()
   let cmd = Get_cat_123_cmd()
   let buf = term_start(cmd, {'out_io': 'file', 'out_name': 'Xfile'})
-  call term_wait(buf)
+  call TermWait(buf)
   " ConPTY may precede escape sequence. There are things that are not so.
   if !has('conpty')
     call WaitForAssert({-> assert_notequal(0, len(readfile("Xfile")))})
@@ -827,7 +827,7 @@
   if has('unix')
     call writefile(['one line'], 'Xfile')
     let buf = term_start('cat', {'in_io': 'file', 'in_name': 'Xfile'})
-    call term_wait(buf)
+    call TermWait(buf)
     call WaitForAssert({-> assert_equal('one line', term_getline(buf, 1))})
     let g:job = term_getjob(buf)
     call WaitForAssert({-> assert_equal('dead', job_status(g:job))})
@@ -860,7 +860,7 @@
 
   call term_sendkeys(buf, "\r")
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
 
   tunmap 123
   tunmap 456
@@ -878,7 +878,7 @@
   let buf = Run_shell_in_terminal({})
   wall
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
   unlet g:job
 endfunc
@@ -887,7 +887,7 @@
   let buf = Run_shell_in_terminal({})
   call assert_fails('wqall', 'E948')
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
   unlet g:job
 endfunc
@@ -908,7 +908,7 @@
   enew
   let buf = term_start(cmd, {'curwin': bufnr('')})
   let g:job = term_getjob(buf)
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
 
   if has('win32')
     call assert_equal('cmd', job_info(g:job).cmd[0])
@@ -919,7 +919,7 @@
   " ascii + composing
   let txt = "a\u0308bc"
   call term_sendkeys(buf, "echo " . txt . "\r")
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
   call assert_match("echo " . txt, term_getline(buf, lnum[0]))
   call assert_equal(txt, term_getline(buf, lnum[0] + 1))
   let l = term_scrape(buf, lnum[0] + 1)
@@ -930,7 +930,7 @@
   " multibyte + composing
   let txt = "\u304b\u3099\u304e\u304f\u3099\u3052\u3053\u3099"
   call term_sendkeys(buf, "echo " . txt . "\r")
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
   call assert_match("echo " . txt, term_getline(buf, lnum[1]))
   call assert_equal(txt, term_getline(buf, lnum[1] + 1))
   let l = term_scrape(buf, lnum[1] + 1)
@@ -943,7 +943,7 @@
   " \u00a0 + composing
   let txt = "abc\u00a0\u0308"
   call term_sendkeys(buf, "echo " . txt . "\r")
-  call term_wait(buf, 50)
+  call TermWait(buf, 25)
   call assert_match("echo " . txt, term_getline(buf, lnum[2]))
   call assert_equal(txt, term_getline(buf, lnum[2] + 1))
   let l = term_scrape(buf, lnum[2] + 1)
@@ -1587,7 +1587,7 @@
   let buf = Run_shell_in_terminal({})
   call assert_equal(colors, term_getansicolors(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
 
   exe buf . 'bwipe'
 endfunc
@@ -1612,7 +1612,7 @@
   let buf = Run_shell_in_terminal({})
   call assert_equal(g:terminal_ansi_colors, term_getansicolors(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
 
   exe buf . 'bwipe'
   unlet g:terminal_ansi_colors
@@ -1646,7 +1646,7 @@
   call assert_fails('call term_setansicolors(buf, colors)', 'E474:')
 
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 endfunc
 
@@ -1742,7 +1742,7 @@
   let win = bufwinid(buf)
   call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 
   set termwinsize=7x0
@@ -1750,7 +1750,7 @@
   let win = bufwinid(buf)
   call assert_equal([7, winwidth(win)], term_getsize(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 
   set termwinsize=0x33
@@ -1758,7 +1758,7 @@
   let win = bufwinid(buf)
   call assert_equal([winheight(win), 33], term_getsize(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 
   set termwinsize=
@@ -1788,7 +1788,7 @@
   call assert_equal(30, winwidth(win))
 
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 
   set termwinsize=0*0
@@ -1796,7 +1796,7 @@
   let win = bufwinid(buf)
   call assert_equal([winheight(win), winwidth(win)], term_getsize(buf))
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 
   set termwinsize=
@@ -1938,7 +1938,7 @@
   call assert_equal(1, winnr('$'))
   let buf = Run_shell_in_terminal({'term_finish': 'close'})
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
 
   " closing window wipes out the terminal buffer a with finished job
   call WaitForAssert({-> assert_equal(1, winnr('$'))})
@@ -2025,7 +2025,7 @@
   END
   call writefile(lines, 'XtermNormal')
   let buf = RunVimInTerminal('-S XtermNormal', {'rows': 8})
-  call term_wait(buf)
+  call TermWait(buf)
 
   call term_sendkeys(buf, "\<C-W>N")
   call term_sendkeys(buf, ":set number cursorline culopt=both\r")
@@ -2215,7 +2215,7 @@
   call assert_equal('', term_gettty(buf + 1))
 
   call StopShellInTerminal(buf)
-  call term_wait(buf)
+  call TermWait(buf)
   exe buf . 'bwipe'
 endfunc
 
@@ -2255,7 +2255,7 @@
 	\ 'echo getwinpos()',
 	\ ], 'XTest_getwinpos')
   let buf = RunVimInTerminal('-S XTest_getwinpos', {'cols': 60})
-  call term_wait(buf)
+  call TermWait(buf)
 
   " Find the output of getwinpos() in the bottom line.
   let rows = term_getsize(buf)[0]
@@ -2278,7 +2278,7 @@
   call assert_inrange(xroot + 2, xroot + xoff, xpos)
   call assert_inrange(yroot + 2, yroot + yoff, ypos)
 
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, ":q\<CR>")
   call StopVimInTerminal(buf)
   call delete('XTest_getwinpos')
@@ -2434,11 +2434,11 @@
 	\ ]
   call writefile(lines, 'XtermPopup')
   let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, ":call OpenTerm(0)\<CR>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, ":\<CR>")
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, "\<C-W>:echo getwinvar(g:winid, \"&buftype\") win_gettype(g:winid)\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_1', {})
 
@@ -2446,7 +2446,7 @@
   call VerifyScreenDump(buf, 'Test_terminal_popup_2', {})
  
   call term_sendkeys(buf, ":call OpenTerm(1)\<CR>")
-  call term_wait(buf, 300)
+  call TermWait(buf, 150)
   call term_sendkeys(buf, ":set hlsearch\<CR>")
   call term_sendkeys(buf, "/edit\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_3', {})
@@ -2454,7 +2454,7 @@
   call term_sendkeys(buf, "\<C-W>:call HidePopup()\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_4', {})
   call term_sendkeys(buf, "\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
 
   call term_sendkeys(buf, "\<C-W>:call ClosePopup()\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_5', {})
@@ -2470,9 +2470,9 @@
   call term_sendkeys(buf, "A")
   call VerifyScreenDump(buf, 'Test_terminal_popup_8', {})
 
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":q\<CR>")
-  call term_wait(buf, 200)  " wait for terminal to vanish
+  call TermWait(buf, 100)  " wait for terminal to vanish
 
   call StopVimInTerminal(buf)
   call delete('Xtext')
@@ -2499,16 +2499,16 @@
 	\ ]
   call writefile(lines, 'XtermPopup')
   let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, ":set noruler\<CR>")
   call term_sendkeys(buf, ":call OpenTerm()\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_m1', {})
 
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":q\<CR>")
-  call term_wait(buf, 100)  " wait for terminal to vanish
+  call TermWait(buf, 50)  " wait for terminal to vanish
   call StopVimInTerminal(buf)
   call delete('Xtext')
   call delete('XtermPopup')
@@ -2531,17 +2531,17 @@
 	\ ]
   call writefile(lines, 'XtermPopup')
   let buf = RunVimInTerminal('-S XtermPopup', #{rows: 15})
-  call term_wait(buf, 200)
+  call TermWait(buf, 100)
   call term_sendkeys(buf, ":set noruler\<CR>")
   call term_sendkeys(buf, ":call OpenTerm()\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "hello\<CR>")
   call VerifyScreenDump(buf, 'Test_terminal_popup_' .. a:group_name, {})
 
   call term_sendkeys(buf, "\<C-D>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, ":q\<CR>")
-  call term_wait(buf, 100)  " wait for terminal to vanish
+  call TermWait(buf, 50)  " wait for terminal to vanish
   call StopVimInTerminal(buf)
   call delete('XtermPopup')
 endfunc
@@ -2594,19 +2594,19 @@
     let g:buf1 = term_start('sh', #{hidden: 1, term_finish: 'close'})
     call popup_create(g:buf1, {})
     let g:buf2 = term_start(['sh', '-c'], #{curwin: 1, exit_cb: function('TermExit')})
-    call term_wait(g:buf2, 100)
+    call TermWait(g:buf2, 50)
     call popup_close(win_getid())
   endfunc
   func TermExit(...)
     let altbuf = bufnr('#')
     call term_sendkeys(altbuf, "exit\<CR>")
-    call term_wait(altbuf)
+    call TermWait(altbuf)
     call popup_close(win_getid())
   endfunc
   call OpenTerms()
 
   call term_sendkeys(g:buf0, "exit\<CR>")
-  call term_wait(g:buf0, 100)
+  call TermWait(g:buf0, 50)
   exe g:buf0 .. 'bwipe!'
   set hidden&
 endfunc
diff --git a/src/testdir/test_terminal_fail.vim b/src/testdir/test_terminal_fail.vim
index f33ade6..d621d03 100644
--- a/src/testdir/test_terminal_fail.vim
+++ b/src/testdir/test_terminal_fail.vim
@@ -10,7 +10,7 @@
 func Test_terminal_redir_fails()
   if has('unix')
     let buf = term_start('xyzabc', {'err_io': 'file', 'err_name': 'Xfile'})
-    call term_wait(buf)
+    call TermWait(buf)
     call WaitFor('len(readfile("Xfile")) > 0')
     call assert_match('executing job failed', readfile('Xfile')[0])
     call WaitFor('!&modified')
diff --git a/src/testdir/test_timers.vim b/src/testdir/test_timers.vim
index 1a6391b..546df1f 100644
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -398,9 +398,9 @@
   call WaitForAssert({-> assert_notequal('', term_getline(buf, 8))})
 
   " GC must not run during timer callback, which can make Vim crash.
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call term_sendkeys(buf, "\<CR>")
-  call term_wait(buf, 100)
+  call TermWait(buf, 50)
   call assert_equal('run', job_status(job))
 
   call term_sendkeys(buf, ":qall!\<CR>")
diff --git a/src/testdir/test_vimscript.vim b/src/testdir/test_vimscript.vim
index f9df09b..69c9f56 100644
--- a/src/testdir/test_vimscript.vim
+++ b/src/testdir/test_vimscript.vim
@@ -1913,30 +1913,30 @@
 
   " Deep nesting of if ... endif
   call term_sendkeys(buf, ":call Test1()\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E579:', term_getline(buf, 5))})
 
   " Deep nesting of for ... endfor
   call term_sendkeys(buf, ":call Test2()\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E585:', term_getline(buf, 5))})
 
   " Deep nesting of while ... endwhile
   call term_sendkeys(buf, ":call Test3()\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E585:', term_getline(buf, 5))})
 
   " Deep nesting of try ... endtry
   call term_sendkeys(buf, ":call Test4()\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E601:', term_getline(buf, 5))})
 
   " Deep nesting of function ... endfunction
   call term_sendkeys(buf, ":call Test5()\n")
-  call term_wait(buf)
+  call TermWait(buf)
   call WaitForAssert({-> assert_match('^E1058:', term_getline(buf, 4))})
   call term_sendkeys(buf, "\<C-C>\n")
-  call term_wait(buf)
+  call TermWait(buf)
 
   "let l = ''
   "for i in range(1, 6)
diff --git a/src/version.c b/src/version.c
index 99ffd90..aaa1dc3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    533,
+/**/
     532,
 /**/
     531,
