I agree with this, and with @Liz above. I think it would be a bad idea to aim to enforce LSP on __init__ or __new__, both practically and theoretically. From a theoretical standpoint, constructors are not part of the instance type at all, so instance typing does not need LSP on constructors to be sound; the only issue is with the type[] type. This was already discussed at length in another thread; as I said there, we should not let the “tail” of type[] wag the dog of instance typing here.
I don’t think that we should sacrifice type[] covariance here, though; I think the most promising path to soundness is to sacrifice type[] callability and use explicit callable types for that instead (and in future, intersections between callable types and type[] types.) So I think the direction @hauntsaninja is exploring here is a useful one.
(The above applies only to constructors, not to other methods that currently have LSP issues. In those other cases I think the right path forward is to try to stick to LSP.)