It makes it very difficult for me to book online and I end up buying the tickets from the machine itself
All they are doing there is setting an expectation, there is no specific meaning, technical or otherwise, to 'two hours' other than perhaps an internal calculation that 99.99% of e-tickets are issues within two hours.
They do this to hopefully prevent people from calling 5-10 minutes after making the booking asking where their tickets are. Calls are relatively expensive to handle and a lot of effort is put into making them unnecessary.
Maybe tickets are issued in batch, maybe not, but it really doesn't matter. If you don't get your ticket within 121 minutes, there's probably something wrong.
Determining and setting an expectation like this (SLA) is very common and in no way unique to train tickets.