I know I'm not objective... But really... The UBL branch of Marlin is really good for non-flat beds. I went to several Dollar stores looking for the worst piece of glass I could find. I get perfect adhesion across 100% of the bed 100% of the time.

https://github.com/MarlinFirmware/Marlin/tree/devel-ubl

If you search the Marlin Issue list, you will find a 'Cheat Sheet' with a list of commands to do to get your Mesh perfectly defined. In fact, you can get a perfect mesh without even having a Z-Probe on the machine.