I could be wrong, but I think that while yes, you won’t get optimal directions for the steps (which isn’t surprising when using SGD), it would still find the right directions because the structure of the problem min_x max_lambda L says we can minimize w.r.t. x and maximize w.r.t. lambda.
lfn = lambda x, l: x**2 / 2 + l * (x - 1)
x = torch.tensor(-0.1, requires_grad=True)
l = torch.tensor(0.0, requires_grad=True)

xs = []
ls = []
for i in range(200):
    f = lfn(x, l)
    dx, dl = torch.autograd.grad(f, [x, l])
    with torch.no_grad():
        x -= 1e-1 * dx
        l += 1e-1 * dl
    xs.append(x.item())
    ls.append(l.item())

%matplotlib inline
from matplotlib import pyplot
pyplot.plot(xs)
pyplot.plot(ls)
x.item()

gives 0.9999565482139587.

Best regards
Thomas