They serve a standard lunch about an hour plus into the flight (i.e. they want to get it served and cleared as quickly as possible, so they can then have a rest !). Its probably quite well timed, as I have never been on this flight when the departure was not delayed at least an hour.
They then serve the usual vile standard BA tea service (sandwiches, scones and cake) about the same time before landing.
As to the 5 hours or so in the middle. Well, its raid the larder time !