converting then outputting varbinary(max) FOR XML PATH
Don't know that you're going to get anything much simpler than this:

DECLARE @x TABLE(a VARBINARY(64));

INSERT @x(a) 
SELECT 0x480069002100 
UNION ALL 
SELECT CONVERT(VARBINARY(64),(REPLICATE(N'x',32)));

SELECT CONVERT(NVARCHAR(32), a) FROM @x FOR XML PATH('tag');


Results:

&lt;tag&gt;Hi!&lt;/tag&gt;
&lt;tag&gt;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&lt;/tag&gt;


I'll leave all the other XML arrangement you may want to do with the output, but essentially IMHO you should convert to (the right!) string output before putting the data anywhere near XML.