I'm currently learning about the GIL and how can it be removed. So I'm confessing that I understood only half of your words and I can be wrong.
As far I understood by reading your long passage, the problem is other threads don't get enough chance to run and the CPU-Bound Python process will re-acquire the GIL right? If that's what you're trying to say, Antoine Pitrou already solved this by implementing the "new gil" which tells that before reacquiring the GIL make sure that other threads have a chance to run. However as I confessed earlier I can be wrong and I misunderstood what you're trying to say. Please correct me if that's the case.