As segwit is active on testnet, blocks will only be downloaded from NODE_WITNESS peers. Though, exactly those peers are disconnected after `BLOCK_STALLING_TIMEOUT = 2` seconds. I am running master (6e6ab2c)

This behavior is consistent across restarts. Sample [debug.log](http://pastebin.ubuntu.com/23058327/) and [getchaintips](http://pastebin.ubuntu.com/23058325/).

It is possible that I shot my own foot at some point, but it seemed smelly enough to create an issue.

* 1000/sec if we have fast peers, so we pick 120,000 to give our peers a
     * two minute window to send invs to us.
     *
     * Decreasing the false positive rate is fairly cheap, so we pick one in a
     * million to make it highly unlikely for users to have issues with this
     * filter.
     *
     * Memory used: 1.3 MB
     */
    boost::scoped_ptr<CRollingBloomFilter> recentRejects;
    uint256 hashRecentRejectsChainTip;
    
    struct QueuedBlock {
        uint256 hash;
        CBlockIndex* pindex;                                     
        bool fValidatedHeaders;                                  
        std::unique_ptr<PartiallyDownloadedBlock> partialBlock;  
    };
    map<uint256, pair<NodeId, list<QueuedBlock>::iterator> > mapBlocksInFlight;
    
    list<NodeId> lNodesAnnouncingHeaderAndIDs;
    
    int nPreferredDownload = 0;
    
    set<CBlockIndex*> setDirtyBlockIndex;
    
    set<int> setDirtyFileInfo;
    
    int nPeersWithValidatedDownloads = 0;