If, for whatever reason, my application loses track of what sequence number I was on, what is the recommended way of re-establishing the session to continue trading?
If the acceptor receives a message out of sequence, it would send a reject message and the reason for it in the text field. In the text field it would mention the sequence number expected, so parse that part of the message, take the sequence number and start again.
From FIX 4.1 onwards, the Logon message (A) contains a tag ResetSeqNumFlag (141). Setting it to 'Y' "indicates that both sides of the FIX session should reset sequence numbers."