Is it safe to do so?
It should be considered safe. For better privacy and security, using your own Electrum server in Bluewallet could also help. Creating transactions in a watch-only wallet using bluewallet and signing them using Electrum offline has no issues.
Is there any better way to do it so I don't have to send the unsigned and signed transaction back and forth?
After signing the transaction you can broadcast it from anywhere. For example: I can sign it on a mobile device which is not connected to Internet but can send text messages, can encode transaction hex and broadcast it using text messages. Related Q&A
Or you can broadcast transaction using this link in Tor browser on an online device: http://explorerzydxu5ecjrkwceayqybizmpjjznk5izmitf2modhcusuqlid.onion/nojs/tx/push but you will have to copy the transaction hex after signing or maybe just scan QR code.
FullyNoded is also a good project that you may find interesting considering you have an iPhone.