My guess would be that it's because technically the scripts are still running, as in they haven't been turned off. They're just simply not given any CPU time while they're considered disabled. So I think you're correct that it's just a reporting issue with llGetObjectDetails, although it's technically not wrong. People can bring as many scripts as they want onto a parcel, with the maximum script memory for each of them, and they are only prevented from getting CPU time. The scripts are still loaded just as completely as they would be otherwise. As far as OBJECT_SCRIPT_TIME goes, it's calculated by the region and not the parcel. So my guess is that the scripts were already running on another parcel in the region before being disabled on your parcel. In that case, it's likely that OBJECT_SCRIPT_TIME would only reach zero after 30 minutes.