I've found a much cleaner way to achieve this, but it's library invasive. The following...
Coroutine Threads are not garbage collected and cannot be abandoned