MIFARE Plus is really meant as an upgrade for existing MIFARE Classic-based systems. It has a mode which is backward compatible with MIAFRE CLassic. It has the same fixed memory structure as MIFARE Classic: sectors with 3 blocks of 16 bytes of data and a block for the 2 access control keys. It is not ISO 14443-4 compliant.
MIFARE DESFire has a flexible memory structure: up to 28 "applications" (a kind op directories) with up to 32 files each. Access control is very flexible, too. It is ISO 14443-4 compliant and it can communicate in an ISO 7816-4 compliant mode. It can be configured as an NFC Forum Type 4 Tag, so that compliant systems (such as Android devices with NFC) will automatically read out the NDEF message. It is used in some payment systems.
EDIT:
The 2 products strive for somewhat different security goals, I would say. DESFire offers AES and 3DES for maximum flexibility, with encrypted, MACed or plain communication: your choice. Each application and file can be configured with its own access control keys. While MIFARE Plus aims to improve the security of MIFARE Classic, but its functionality is for the rest very similar to it. In addition, MIFARE Plus has a proximity check feature, while DESFire has no such thing.
They both support the same reading speeds (check the specs!). They will both perform OK on a ferrite layer and an antenna size of 35mm sounds OK. I have such DESfire tags, with and without ferrite, that work fine with an Android phone.
For ease of development, my preference is with DESFire. It is more flexible, both in communication options and data storage configuration. If you have an Android device with NFC capability, you can even configure DESFire as Type 4 Tag, which means that Android will read out any NDEF data automatically and deliver it to your app in an intent.