Input.GetMouseButtonDown return value is the same during the frame. So even if you let go of the mouse button, the button value won’t change until you return from Update, which won’t happen until you exit the loop, which won’t happen until the button value changes… you see the issue, you are stuck in that while loop.
Also, GetMouseButtonDown won’t let you “hold your button down”, it is only true in one frame when you press it, doesn’t wait for release. Use GetMouseButton() for that.