Turns out that WaitForFenceValueInternal has a path that ends up calling
TrimDeletedObjects too. This caused ResourceAllocationFallback to return
false more often than not since when it finally calls TrimDeletedObjects
the second time TrimDeletedObjects had already been called after waiting
for the sync point and this new call returns false. This resulted in OOM
errors.
Turns out that WaitForFenceValueInternal has a path that ends up calling TrimDeletedObjects too. This caused ResourceAllocationFallback to return false more often than not since when it finally calls TrimDeletedObjects the second time TrimDeletedObjects had already been called after waiting for the sync point and this new call returns false. This resulted in OOM errors.