Passing values to a view block
Placing the contextual filter in the master view makes sense if every display has it, thus it still can be overridden. If there is only one block display out of X other displays, I would place the contextual filter in that display.

The contextual filter will be available as 'field' in your view and you can use it in the filter-criteria.

Contextual filters are passed via the url (in most cases), no matter if AJAX or not.
Or when using views_embed_view as method-arguments.

For your propose, conditional filters nor relationships will not work.

You could then add the other view display as fields and make them conditional. But this is not really good practice nor performant. (Use also a caching module)

From views_field_view:


  This view handler can accept arguments from fields of the parent view
  using tokens and pass them into the child view for each row. Raw or
  rendered token values can be used, as well as static values.


A ctools tools multi step form wizard is a better approach. here's an example https://github.com/jgottwig/ctools-wizard-example.