To mark a specific point in the stream, you send a <port> marker at the appropriate point in time during your <trial>, i.e. by setting the port element to the value you wish to send and then inserting the marker into your trials' /stimulustimes or -frames at the point when you wish to send the marker. The marker value should then appear in the gaze data stream (cf. https://www.millisecond.com/forums/Topic16009.aspx#bm16016).
Looking at your script, it seems you've already set that up, so I'm not sure what's amiss or what I am missing.
As for point #2, to obtain detailed gaze data, you'll want to log detailed gaze data to the <eyetracker> data file, see https://www.millisecond.com/support/docs/v5/html/language/elements/eyetracker.htm
under properties, and https://www.millisecond.com/support/docs/v5/html/language/elements/eyetrackertobii.htm
for some more Tobii-plugin specific properties. Currently, you don't seem to log anything there except for the eyetracker.lasttimestamp property
/ plugin = "tobii"
/ columns = (date, time, group, subject, build, blocknum, trialnum, blockcode, trialcode, pretrialpause, posttrialpause, trialduration, trialtimeout, response, correct, latency, eyetracker.lasttimestamp
, stimulusnumber, stimulusitem, stimulusonset, stimulusnumber, stimulusitem, stimulusonset, stimulusnumber, stimulusitem, stimulusonset)
For illustration, see e.g. this example from the Corsi w/ eyetracking example (https://www.millisecond.com/download/library/v5/tobii/corsiblocktappingtask/corsiblocktappingtaskeyetracking.iqx
/ plugin = "tobii"
/ columns = (date, time, groupid, subjectid, timestamp, focuspixelx, focuspixely, focusfixationpixelx, focusfixationpixely)
If you don't specify /columns in the <eyetracker> element at all, then the following data should be captured automatically: https://www.millisecond.com/support/docs/v5/html/howto/tobii.htm
, under "Eyetracker Data Recorded by the Plugin."
Hope this helps.