Thank you for sharing this.
I must say that in most cases it is a mistake to run B4A code with background threads. You will encounter all kinds of issues as this goes against B4A design.
Most slow tasks already have async implementations. For example: file copying, network communication, SQL, animations and others. The async implementations do use background threads internally.