I believe the issue lies with Windows Terminal (wt.exe). If timeout executes within a new Windows Terminal window, it acts as though a key is pressed and immediately terminates.
If I run cmd.exe in Windows Terminal, running timeout /t 5 or cmd /c timeout /t 5 works as expected, but start "" timeout /t 5 launches a new window which exhibits the issue. Similarly, running timeout /t 5 from a (Win+R) Run dialog exhibits the issue.
It probably relates to an older "feature" of timeout; "input" from resizing the window can also cause it to terminate. (superuser.com: Is it a bug or intentional behaviour that the "timeout" command aborts when you maximize the window?)
The TIMEOUT /T 0 workaround previously posted by LordenFamily likely works by removing this non-keyboard input from the buffer.
If you search "Developer settings" in the Settings app, or find "Privacy & security > For developers", there should be a "Terminal" setting. When this is set to "Let Windows decide" (which is probably the default), it appears to use Windows Terminal for processes launched normally and Windows Console Host for processes which run as administrator. Setting it to "Windows Console Host" bypasses the issue, but then you don't get the benefit of any Windows Terminal features.