Illegal XML character out of the extended event
Since there are no takers yet, I offer a guesswork answer: Yes, I think it's a bug. 

Workaround: replace the illegal character once you know which one it is before converting the data to XML like this:

select xml_event_data = CONVERT(xml, replace(event_data,CHAR(3),'&amp;#3;')), *
from sys.fn_xe_file_target_read_file
            (
                '...\Log\error_*.xet', 
                '...\Log\error_*.xem', 
                null, 
                null
            )