So you shouldn't be using `esc_url` in that context, you should only use it when you are outputting etc. Encoding ampersands is valid too:

```PHP
wp> add_query_arg( array( 'foo' => 'bar', 'baz' => 'foo'), admin_url( 'admin-ajax.php' ) );
string(45) "http:/wp-admin/admin-ajax.php?foo=bar&baz=foo"
wp> esc_url( add_query_arg( array( 'foo' => 'bar', 'baz' => 'foo'), admin_url( 'admin-ajax.php' ) ) );
string(50) "http:/wp-admin/admin-ajax.php?foo=bar&amp;baz=foo"
```