As I have eplained before, it depends on how much the transient data is important for your design. If you can accept a transient with incorrect data then solution 1 is OK, there is no need to use separate resets if your design is equipped with cross-domain control signals which guarantee steady-state synchronization (enables, sync-pitches, etc.).
If, otherwise, you cannot accept "false" transient data the solution 2 will guarantee data integrity from the first data soon after the reset because of the synchronous deassertion to the slow domain.