The hint with the CHILDSTATUS rings a bell. In case Neo's suggestion does not help, one more idea for debugging. Write a wrapper (e.g. named /tmp/convert.sh) like the following
#!/bin/sh
echo xxx `/usr/bin/id`
/usr/bin/libreoffice --headless --convert-to xls SOMEFILE.csv --outdir /tmp
echo "xxx $? exit code"
fill in a .csv tile for testing and call the wrapper via
set result [exec bash /tmp/convert.sh]
i would not be wondering, when you get on your machine now a useful result now, showing a non-zero exit code from libreoffice. Maybe there is a permission problem under the userid of the server?
Handing CHILDSTATUS in Tcl requires some special, which i don't see in nsproxy. Probably nsproxy has to be improved to return better errors.