Nice of them to make that option available. It's also understandable, for once, that it carries such high transaction cost, since it completely screws with their processing schedule.
In case someone is interested in how transfers actually work:
At the end of business, each bank starts producing a .csv file with the transactions for each account to a certain bank. I'm not sure how long this takes since I've never been involved in that part, but it's safe to assume that it can take a while since they tend to become available around midnight - 3AM. Sometimes something goes wrong and they are only produced a bit later, but if it's after 7AM, there's trouble. At least with the financial institutions I dealt with.
The banks find their relevant files on a shared folder on the network, made accessible by the producing banks. These files are then pulled and the data placed in a database. Recon systems run and check for invalid or erroneous transactions.
Transactions that are faulty are highlighted and they need to be resolved by hand.
Correct transactions are converted into yet another text file by the recon software, which is passed along to other systems for processing, which includes placing the funds in your account.
The other systems are fairly fast, taking a few minutes mostly, per stage. The recon process, however, can take some time. I've seen it run for an hour or more, for a single bank, in day to day operations, though the software that I've seen being used isn't very efficient. I've personally rewritten some of their functionality just to see if I could speed things up and my code blew theirs out of the water and I'm not even a pure software developer. They continuously look to improve performance, however, it's a very slow process to get changes cleared for implementation.