I would not expect a perfect 0 as the final loss in any case alone due to the limited floating point precision (but a small value instead).
By “standard” criterion I meant the loss functions included in torch.nn assuming you are not inverting them or add any constant etc.
E.g. depending on your use case, you might define a “zero” loss converging towards e.g. -100 if it fits your use case (mathematically it wouldn’t make a difference if you just subtract a constant from the loss).