Using delayed cleanup of watchlists

Significantly improves variable elimination speed
Fixing a bug in maybeEliminate

Return value indicates whether we have eliminated, not solver state
Don't update otfHyperTime here, it need to be pulled from cache, etc