Whilst it may require more work than Xamarin Forms, MvvmCross is a way of creating cross-platform applications using Xamarin without any of the issues you've documented above.
MvvmCross is pretty legit. I felt that it really made Xamarin worthwhile. I found it quite a bit easier to keep the platform specific code to a minimum and when I needed to write it it was abstracted out as much as possible.