Need Thread.sleep() every time with driver.context();

here is code example:

public static void switchContextToNativeView(SharedDriver driver) {
await().atMost(TIMEOUT, SECONDS).until(() -> driver.getContextHandles().contains(NATIVE));
await().atMost(TIMEOUT, SECONDS).until(() -> NATIVE.equals(driver.getContext()));

Every time i change context with driver.context() i expect random FAIL since context is not fully changed

I tried to wait until new Context can be confirmed with driver.getContext() as in example but still get random fails in that area

Android 5.1.1

I use change context when try to assert native alerts or change Network state