You can load a scene without destroying anything in the current scene with SceneManager.LoadScene
with LoadSceneMode.Additive
.
Example: SceneManager.LoadScene ("SceneName", LoadSceneMode.Additive);
That way all the objects from the loaded scene get added to your current scene. Both scenes now coexist with each other in the same 3d space.
Note that all scripts from the "background scene" are still active, so you might want to set your input controller to inactive while the minigame is active.
The minigame scene won't get loaded "in a window", but you can fix that by the scene being a window in form of an own UI canvas. If you don't want to implement your minigame with just the UI system, you can add a secondary camera to the scene which shows the minigame. To make that second camera render everything it sees on top of the output of the first camera, set it's "Depth" higher than that of the first and set its "Clear Flags" to "Don't Clear".