Fix a double unmount in chroot sandbox

It appears the hack that was used to not double-unmount did not work.
The error was just ignored but an error message would be printed.
diff --git a/src/buildstream/sandbox/_mounter.py b/src/buildstream/sandbox/_mounter.py
index e6054c2..8033253 100644
--- a/src/buildstream/sandbox/_mounter.py
+++ b/src/buildstream/sandbox/_mounter.py
@@ -90,7 +90,7 @@
     @classmethod
     @contextmanager
     def mount(cls, dest, src=None, stdout=sys.stdout,
-              stderr=sys.stderr, mount_type=None, **kwargs):
+              stderr=sys.stderr, mount_type=None, unmount=True, **kwargs):
 
         def kill_proc():
             cls._umount(dest, stdout, stderr)
@@ -100,9 +100,10 @@
         path = cls._mount(dest, src, mount_type, stdout=stdout, stderr=stderr, options=options)
         try:
             with _signals.terminator(kill_proc):
-                yield path
+                 yield path
         finally:
-            cls._umount(dest, stdout, stderr)
+            if unmount:
+                cls._umount(dest, stdout, stderr)
 
     # bind_mount()
     #
diff --git a/src/buildstream/sandbox/_sandboxchroot.py b/src/buildstream/sandbox/_sandboxchroot.py
index 95e247e..49f4931 100644
--- a/src/buildstream/sandbox/_sandboxchroot.py
+++ b/src/buildstream/sandbox/_sandboxchroot.py
@@ -288,11 +288,11 @@
 
             # Remount root RO if necessary
             if flags & flags & SandboxFlags.ROOT_READ_ONLY:
-                root_mount = Mounter.mount(rootfs, stdout=stdout, stderr=stderr, remount=True, ro=True, bind=True)
                 # Since the exit stack has already registered a mount
                 # for this path, we do not need to register another
                 # umount call.
-                root_mount.__enter__()
+                stack.enter_context(Mounter.mount(rootfs, stdout=stdout, stderr=stderr, unmount=False,
+                                                  remount=True, ro=True, bind=True))
 
             yield