Let me address some of your points:
You need to know where your bitcoins came from in order to resend them. This is due to the input output header in the bitcoin protocol.
So because of this you would need the latest blockchain. Okay, so we take a usb stick, copy the latest blockchain on it and go to our internetless computer/server and integrate the blockchain. We then need a tool that constructs transactions. We sign the transactions with our private key and copy them to the usb stick.
That's more or less true. You don't have to store the whole blockchain on your "cold wallet" though. The cold wallet is just a place to store private keys. The best approach would be to create a transaction "draft" (with inputs unsigned) on an online computer, then move it on a USB stick to the offline computer with cold storage, and then use a piece of software that lets you sign this transaction with private keys. Then you move out the resulting signed transaction back to online computer and send it to the network.
So I see some problems in this approach:
...
Yes, hot/cold wallet scheme has many problems, and you are right on almost all those points (besides the last one, maybe).
So my questions on hot wallet cold storage are:- Is this in your opinion the most used approach in the industry?
- Is this a recommendable approach?
Yes, it's currently the most (over-)used approach in the industry. Is it recommendable? No. For the afermentioned reasons.
I heard alot about multi-sig addresses, but that they are yet to be implemented in the protocol.
Wrong. Multi-sig addresses are implemented in the protocol for a long time. Last year some services started to pop out using this beautiful feature of Bitcoin. One of them is
Bitalo.com, which is an exchange that utilizes this technology to make user funds safe even during the trading, but, what's even more important, when they only want to store their coins on us. By "safe", I mean safe even in case of hacker attack on Bitalo servers, or even safe from the administrators themselves.
Bitalo is not the only service that implements that (but AFAIK is the only *exchange* service). Other e-Wallets that implement multisignature include:
GreenAddress.it,
BitGo.com and
Trustedcoin.com.
There is just the hot wallet, which is directly connected to the internet and the backend server.
Users deposit and withdraw money from it. When signing up, users must state a bitcoin address that belongs to them.
As long as users make trades their bitcoins are stored inside of that wallet. Once the user doesn't trade for a period of time, let's say 1 day,
the system notices this and sends the users bitcoins back to the stated address from the signing process.
You never should send Bitcoins back to the address they came from without owners consent. This is exactly because there are many Bitcoin services which use hot/cold wallets and mixup Bitcoin addresses. So the address you deposit to is different than the address you're sending from while withdrawing. So if a service would send you back Bitcoins you sent from this kind of service, it could end up on other users wallet!
One service that doesn't work that way is
Coinkite - they run a full-reserve service by utilizing Hardware Security Modules, which means that they have only one wallet instead of Hot and Cold, and so they can tie addresses to specific users.
I had experience from the administrator side with both types of exchanges (both hot/cold storage one and a multisig one) so if you have any more questions, feel free to ask

.