fix cancellation sometimes not being thrown from LookAhead