Racket has had significant engineering and design time spent directly on the use case you describe. See this old thread from John Carmack about his son learning with Racket
https://news.ycombinator.com/item?id=10111479. Things have continued to improve since then as well.
From my own experience, it is absolutely possible to get good interaction with low latency in Racket, but of course
as with any language you have to have enough experience to know how to avoid performance pitfalls.
For some of the gui work I've done I needed to mix threads and semaphores to get things to be really responsive when there could be a long running process triggered by a UI interaction, but in Racket it has been vastly easier and safer than in other languages.