Hi. Interrupting the thread is unavoidable because it is the only way one can cancel a (non RxJava) IO or blocking operation. Under general curcumstances, the underlying ExecutorService handles such interrupts so they don't affect unrelated tasks. However, interrupting an already completing task hurts performance, but we (I) haven't been able to come up with a scheme where regular task-end and cleanup should not trigger an interrupt whereas an external unsubscription should.
I use SLF4J with log4j backing and no issues with the regular log messages, but I'm not familiar with your Async logging. Is it an SLF4J feature or you implemented one?