CFNetwork should be more magical

In this bug, we have a work around.

But ideally, we should actually spin up a thread, so you don't have to think about this. Also, we duplicate all of this between iOS and mac, but different. We should look at maybe unifying those?