Finalização de tarefa JavaFX e encadeamento JavaFX

Eu apenas comecei a aprender sobre JavaFX hoje e estava tentando aprender mais criando um clone do Snake, mas estou tendo problemas com o encadeamento. Eu queria criar um encadeamento que atualizasse a posição da cobra na tela, mas não conseguia usar um encadernado Runnable normal, porque estava usando o JavaFX a partir desse encadeamento para atualizar as posições dos retângulos desenhados na tela (o que aprendi minha classe da qual eu estava criando o thread estende JavaFX.scene.layout.Pane e estou tentando usar uma tarefa para atualizar a posição da serpente . Meu problema é: a tarefa parece executar apenas uma ou duas vezes e sai, sem que eu interrompa.

Construtor para a classe que estende o Painel (a classe Snake estende o Grupo):

public GameFrame(){
    this.setPrefSize(800, 600);

    Snake snake = new Snake();
    this.getChildren().add(snake);

    taskThread = new Thread(new Task<Void>() { 
        protected Void call() throws Exception {
                while(!Thread.currentThread().isInterrupted()){
                    snake.updatePosition();
                    try{
                    Thread.sleep(1000);
                    } catch(InterruptedException e){
                        break;
                    }
                }
            return null;
        }
    });
    taskThread.start();
}

Sinto que realmente não entendo qual é a melhor coisa a fazer aqui, e o que estou tentando fazer pode ser uma loucura. Existem sugestões sobre o que devo fazer ou como posso corrigir isso?

questionAnswers(1)

yourAnswerToTheQuestion