The method of using a createfile to run the script and handle redirecting output works well, is cross-platform, and works with all commands so I do like that method.
Using the quote-wrapping method I described does work specifically in the case of using cmd.exe though. The fact you got an empty file implies redirection is working, but there was no stdout output. Perhaps you got an error to stderr instead. Try
waithidden cmd.exe /C ““C:\Windows\System32\cscript.exe” /B “C:\Program Files\Microsoft Office\Office16\ospp.vbs” /dstatus > C:\ospp_vbs_dstatus.txt 2>&1"
To show the error output as well.
Edit misplaced quote