Hopefully someone finds this useful.
After tons of digging through the 8192cu driver, it seems that it will not initiate a scan if it deems itself to be "busy" with traffic. It will just return cached scan results. In the environment I had the hardware installed, there was a lot of multicast traffic causing it to be "busy" almost all the time.
To fix this, I had to edit one line in core/rtw_cmd.c. Here's the diff.
1826c1826,1829
< if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 100 ||
---
> // in large networks with lots of multicast traffic,
> // I needed to increase the Rx threshold for bBusyTraffic
> // so that AP scanning would work
> if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 500 || // 100 ||
1831c1834
< if(pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 100)
---
> if(pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 500) // 100)