In which case, what I would do is change the scene root entity to something unique to the whole project:

Eg: ‘Scene1’
And change the code to:
    this.cutaway_hotspots=this.app.root.findByName('Scene1').findByTag("cutaway_hotspots");
The name of the entity (‘Scene1’) could be a script attribute on the hotspot script.
The issue here is the same reason here: Hotspots not drawn - #14 by yaustar
At the point that initialise is called during your loadScene logic, both scenes are loaded and the root.findByTag will find the scene you are switch from entities too.
However:
I would suggest using loadSceneData to load the JSON from the server, destroy the current scene hierarchy and then add the new scene hierarchy. This means that the JSON data can be loaded first with adding the new scene so you can destroy the old scene and add the new scene in the same frame.
An example of use load scene data in this context: PlayCanvas 3D HTML5 Game Engine (see console log for printing out of the model components on the tagged entities.
ChangingScenes.prototype.loadScene = function (sceneName) {
    // Get a reference to the scene's root object
    var oldHierarchy = this.app.root.findByName ('Root');
    // Get the path to the scene
    var scene = this.app.scenes.find(sceneName);
    this.app.scenes.loadSceneData(scene, function (err, sceneItem) {
        if (err) {
            console.error(err);
        } else {
            oldHierarchy.destroy();
            this.app.scenes.loadSceneHierarchy(sceneItem, function(err, parent) {
                if (err) {
                    console.error(err);
                }
            });
        }
    }.bind(this));