Also, as far as I understand, the mechanism of ACH prevents it from being instantaneous, requiring old school processes every night to reconcile and finalize transactions. ACH does not check if accounts have money in real time, it assumes it, and then deals with problems later, which is why transactions take days to finalize.