When I've seen iSCSI LUNs disappearing in Windows (physical or virtual), the cause is usually either misconfiguration of the MS iSCSI Initiator or some kind of networking problem. Don't judge iSCSI volumes inside the guest by the performance of what you're seeing. I have configured numerous VMs with iSCSI LUNs attached inside the guests for all sorts of applications - Exchange, file servers, SQL, etc. It sounds like the problem isn't really with the strategy but rather with the configuration.
If there is some kind of problem with the configuration of either the SAN, networking, or otherwise, then using an RDM at the ESX level will likely experience the same kind of outages that you're seeing now. I'd try to narrow down that issue before changing the configuration.
Using a VMDK file can also be fine provided you back that up so that if you lose the LUN you don't lose your data. There are a number of tools out there like Veeam Backup or Vizioncore vRanger that are affordable and can backup entire VMDK files pretty easily.