Redirect rule doesn't contain all the query parameters
That's the way drupal_parse_url() parses your URL. If you think this is wrong, you can escape your &amp; characters and file an issue in the core Drupal issue queue.

$ drush php-eval 'print_r(drupal_parse_url("user/login?destination=node/4?cid1=[entity-fetched-household:0:contact-id]&amp;cs1=[entity-fetched-household:0:hash]&amp;cid2=[account:civicrm-contact:contact-id]&amp;cs2=[account:civicrm-contact:hash]"));'
Array
(
    [path] =&gt; user/login
    [query] =&gt; Array
        (
            [destination] =&gt; node/4?cid1=[entity-fetched-household:0:contact-id]
            [cs1] =&gt; [entity-fetched-household:0:hash]
            [cid2] =&gt; [account:civicrm-contact:contact-id]
            [cs2] =&gt; [account:civicrm-contact:hash]
        )

    [fragment] =&gt; 
)