The block producer should not be run in P2P mode, as P2P mode has no support for failover whatsoever, I also see no urgent reason (out of using the newer network stack) to run the BP in P2P mode, it should only talk to its own relays anyway. Personally, I only tested the block producer in non-P2P mode because of this.
Especially, in mixed mode, when non-P2P and P2P-nodes are used, you want node 1.35.7 on the non-P2P nodes. From my testing, even with 1.35.6, if you have mixed mode and the BP loses connection to the P2P relay, if the second non-P2P relay also drops out for whatever reason, the BP will re-connect to the P2P relay and hold on for dear life. So even with 1.35.6, I never saw any serious risk for block propagation. In all my early usage of P2P in mainnet, I have not lost a single block out of hundreds of blocks by now.
For a number of epochs now, I successfully ran my BP in non-P2P mode and my two main relays in P2P mode. Outside of epoch switches, the connection between BP and P2P mode is very stable, if the connection drops to one P2P relay it will recover very quickly.
It is not recommended officially yet, to run all relays on P2P mode as IOG intends to do a gradual roll-out. The recommended setup is BP and one relay in non-P2P mode, if you got an extra relay run this one in P2P mode.
In my testing, propagation has never been better outside of P2P, I have not seen one single race condition after toggling on P2P on my relays. Race conditions are rather rare anyway, so I might still see some of course, but metrics still look better enough to me and are enough reason to keep P2P engaged on my primary relays for good. There is no going back for me for main relays.
P2P mode enabled does require a bit more memory though, so 16GB is a bit tight indeed, especially around epoch switches. I am looking forward to re-evaluate this on the one P2P relays on 16GB memory with the upcoming node 8.x which is said to be fully compatible with GHC 9.2 which compiler should have superior garbage collection.
For now on a P2P relay with 16GB memory I recommend restarts after epoch switch every 5 days to be on the safe side.