\def\ListSort[#1]#2{\directlua{hvdm.listsort([===[#2]===],[===[#1]===])}}
Calling \ListSort[sep={ + }]{} delivers the string 'sep={ + }' into LuaTeX as the printout in the logfile shows and as intended.
However in \ListSort[{ + }]{} the braces have disappeared and transferred is nothing more than ' + '.
Why is the transfer messing up the character string I am passing by removing the outer braces? Is this a bug or is it an unavoidable consequence of the TeX-LuaTeX interface?