I asked myself why bank transactions take 2-6 business days to complete. How does the internal process of a transaction look like? Isn't it possible to redesign the process so that transactions are instant?
If you want your bank to pay $1 to a beneficiary Bob, then the service (no matter how implemented) needs to result in Bob's bank saying to Bob "Hey, I owe you $1".
The usual way how this is done consists of two parts - your bank needs to somehow tell Bob's bank "hey guys, do us a favor and please give Bob $1 with a message from the sender", and your bank needs to convince the other bank that they'll pay for (cover) that. This is the main source for the delays in international payments - there are thousands of banks, and most of possible pairs have no legal contact between themselves whatsoever, no bilateral agreements, no trust and no reasonable enforcement mechanism for small claims.
If I'm Bob's bank, then a random bank from anywhere from Switzerland to Nigeria can send me an instruction "give Bob $1, we'll make it up for you", the SWIFT network is a common way of doing this. However, most likely I'm going to give Bob the money only after I receive the funds somehow, which means that they have given the money to some institution I work with. For payments within a single country, it often is a centralized exchange or a central bank, and the payment speed is then determined by the details of that particular single payment network - e.g. UK Faster Payments or the various systems used in USA.
For international payments, it may require a chain of multiple intermediaries (correspondent banks) - for example, a payment of $1mm from Kazakhstan to China will likely involve the Kazakhstan bank asking their main correspondent in USA (some major bank such as Chase JPMorgan) to give the money to the relevant chinese bank's correspondent in USA (say, Citi) to then give the money to that chinese bank to then give the money to the actual recipient. Each of those steps can happen because those entities have bilateral agreements, trust and accounts with each other; and each of those steps generally takes time and verification.
If you want all payments to happen instantly, then you need all institutions to join a single binding payment system. It's not as easy as it sounds, as it is a nightmare of jurisdiction - for example, if you'd want me (as Bob's bank) to credit Bob instantly, then the system needs to provide solid guarantees that I would get paid even if (a) the payer institution changes its mind, made a mistake or intentional fraud; (b) the payer institution goes insolvent; (c) the system provider gets insolvent. Providing such guarantees is expensive, they need to be backed by multi-billion capital, and they're unrealistic to enforce across jurisdictions (e.g. would an Iranian bank get recourse if some funds got blocked because of USA sanctions). The biggest such project as far as I know is SEPA, across most of Europe. Visa and MasterCard networks perform the same function - a merchant gets paid by the CC network even if the payer can't pay his CC bill or the paying bank goes insolvent.
It is a rather complex system, but here is a rough summary.
Interbank tranfers ultimately require a transfer of reserves at the central bank. As a concrete example, the bank of england system is the rtgs. Only the clearing banks and similar (e.g. bacs) have access to rtgs.
You can send a chaps payment fairly quickly, but that costs. Chaps immediately triggers an rtgs transfer once the sending bank agrees and so you can be certain that the money is being paid. Hence its use for large amounts.
Bacs also sits on the rtgs but to keep costs down it batches tranfers up. Because we are talking about bank reserve movements, checks have to be in place and that can take time. Furthermore the potential for fraud is higher than chaps since these are aggregrated transactions a layer removed, so a delay reduces the chance of payment failing after apparently being sent.
Faster payments is a new product by bacs that speeds up the bacs process by doing a number of transfers per day. Hence the two hour clearing. For safety it can only be used for up to 10k.
Second tier banks will hold accounts with clearing banks so they are another step down.
Foreign currency transfers require the foreign Central Bank reserve somewhere, and so must be mediated by at least one clearing bank in that country.
Different countries are at different stages in their technology. Uk clearing is 2h standard now but US is a little behind I believe. Much of Europe is speeding up.
Rather like bitcoin clearing, you have a choice between speed and safety. If you wait you are more certain the transaction is sound and have more time to bust the transfer.
Virtually all of these difficulties can be dealt with fast and cheap with automation, the real reason however is that banks tend to make profit with said money.
All banks have specialist teams that loan or invest such "float money" on overnight or shorter terms to generate income from it for the bank. Sometimes both the sending and the receiving bank do this, depending on their advertised terms of business (e.g. money paid into an account is credited on the third working day following the paying-in). When I worked in a bank in the 1990s, this cash was often loaned overnight to big customers to enable stock market transactions to go through etc.
In short: Your bank makes profit even on your payments. It has nothing to do with "cutting costs" or "regulatory issues".