Liability Tracking
Below is a simplified overview of how liabilities are calculated across the SKNK protocol to ensure that LPs are exposed to all open tickets whilst their position is active.
This flow focuses on a single reserve in a pool for simplicity. In production each pair consists of two reserves.
Start Burn
The example pair has had regular game activity with a number of LP positions. The settlement chain is currently incomplete - 2 tickets are currently pending state (#10 & #11) which have block settlement of later tickets. These funds are awaiting unlock back into the reserves.

Our example LP (LP #1) wishes to withdraw from the protocol for which they own 50% of the pool. They call startBurn() (whether directly on the SLPPair or through SLPRouter) which sends their SLPERC20 tokens to the pair contract.
At this stage the pair calculates the amount that can be directly released to the user - 50% of reserves (100 TKN) - and transfers them atomically. For the LPs pro-rata inactive funds (i.e. stake, ringfence, pending) the pair calculates the maximum amount that can be returned from these tickets - if all pending tickets lose and are added back into the pair.
In this example the LP will potentially receive 40 TKN - 50% of each inactive pot. This value is used to increment the exit target which will set the threshold of the exit pot.
As there are 2 pending tickets, the LP cannot finalise until these are settled and the real liability can be determined.
At this stage, the position is no longer exposed to swaps & tickets being created.
Wait for Pending Tickets

Before LP #1 can finalise, pending tickets #10 & #11 must be resolved. Player stakes for pending tickets are tracked within the stake pot and potential winnings from the pair are tracked within ringfence. Ticket resolution is handled by the VRF asynchronously and may return non-linearly. As responses are returned, allocated funds will either be credited to the player upon a win or moved to the pending pot for linear settlement.
Wait for Linear Settlement
Ticket resolution and settlement occur within the same transaction.

As tickets are inserted into the SettlementManager and pending funds can be safely released back into the pairs active reserves, the exit pot is filled up to
the exit target and the remainder returned to the reserves. As all pending tickets have been settled prior to the start of the LPs withdrawal, it can now be finalised.
Finalise Burn

With full settlement completion for the withdrawal, it can now be finalised. Once the user calls finaliseBurn() (whether directly on the SLPPair or through SLPRouter) the pair contract will query the SettlementManager for the exact liability owed to the position. This value is dependant on the win/loss rate of the pending tickets and will be between 0 and the max allocation.
The real liability will be transferred to the LP and the exit target will be reduced by the withdrawals max allocation. Any funds in the exit pot in excess of the revised target will be returned to the active reserves.