Smart. Good use of the raw transaction API call.
I believe you can also send a single transaction using a key with Electrum with cmd line options. The code for this is quite readable, in Python, and potentially could be grafted into an online processing backend. I guess it's somewhat the same as you still use a third party server except there is several Electrum servers available.