Oui tu peux, et cela fonctionnera comme attendu parce que la méthode stop() de ton objet thread (self.__work.stop()) est appelée par un autre thread...
Il existe des efforts pour créer des équivalents asynchrones (comme pyserial-asyncio ), mais leur disponibilité, leur maturité ou leur compatibilité...