It's treading issue. You can't wait for something which is calculated on the same thread.
You can put code which flips card back into the Timeline
to make JavaFX care about threading instead of you.
backflip : Timeline {
repeatCount: 1
keyFrames: KeyFrame {
time: 1.5s
action: function() {
// here is code which flips card back
}
}
}