Hi Chris,
this could be the GlassRobot we need to use in a headless/monocle environment. I observed some timing problems in the past. TestFX normally uses the good'ol Robot from AWT.
maybe with a simple example with two textfields, clickOn(firstTextField), push(TAB), assertThat secondTextField is focused, we could try to identify the exact cause. if there are
problems with the timing, we could use interrupt() in FxRobot before the assertion (or WaitForAsyncUtils.waitForFxEvents() directly).
--Benjamin