It isn’t safe to kill threads. Threads can and should be designed to be interruptible (checking for interrupt status and/or exceptions for graceful exit). If you didn’t do that, interrupt() may not work. If not, you will have to restart the gateway.
Start here:
Some other search results:
https://forum.inductiveautomation.com/search?q=kill%20invokeAsynchronous
https://forum.inductiveautomation.com/search?q=persistent%20thread%20leak