Yes you can use this architecture, provided that the bitcoin node you don’t control doesn’t know your private keys for any address you use.
What you want to do is use a reputable library, for instance electrum client, but there are many libraries in many languages available to do basic things.
From electrum client for instance, you can:
- create address (wallet, keep private)
- create raw transaction (unsigned, and just collection of utxos basically)
- sign transactions (keep private keys private), output hex of signed tx is safe to then broadcast
- broadcast transactions
Electrum client is sometimes called SPV mode (simple payment verification). This is the protocol used for lite clients, mobile wallets etc.
Once you sign your transaction, it can be broadcast via the bitcoin node you don’t control, a public electrum server, or an explorer that offers relay via an api. Some mining pools offer transaction broadcasting as well.
The main thing to be hyper-vigilant about is that you keep your private keys (wif) secret.
As for getting a “callback” about transactions to your wallet, you can use an explorer to poll your addresses for new transactions. Also using an electrum wallet will give you the ability to do all of this as well.