> Does Platform.runLater not return a Future or handle that can be cancelled?

Sadly, it doesn't, once queued, the Runnable cannot be cancelled but guaranteed to be run at a later time in the ui thread.