A discussion in the P/Invoke PR indicates that there is more work to be done in the future even after it's landed, around marshaling wrappers, the prestub, and other places. See #115393 (comment) and #115393 (comment).
Relevant bits quoted below.
I expect that we will need to do something about the hidden IL stub arguments and PInvoke IL stub sharing to make the marshalling stubs work. The easiest path may be to disable PInvoke IL stub sharing in interpreter mode (or get rid of it completely - it may not be as important as it used to be).
The interpreter related code in prestub.cpp (and other places) is not prepared to handle PInvokes.
We should agree on how we are going to deal with sharing of marshalling stubs first; and then do the required changes.