The (analogue) normal mains radio is more accurate. It is the original standard for broadcast, so the time signal on the hour is for this transmission method. As more people listen online and by DAB broadcast, this might change, but AM/FM radio is still the commonest way to listen to Radio 4.
The delay comes from the time it takes to encode the analogue signal from the radio station. It needs to be converted to the appropriate bitrate and format for the broadcast medium, and this converted signal needs to be sent to the appropriate transmitter or web-server. Internet radio also suffers from lag in that the streaming audio has to pass through several servers.
To ensure you get a constant, glitch-free stream, the digital processing, sending and receiving are all buffered. That is, several seconds of data are stored before playing, as the data comes in in fits and starts rather than as a constant stream (AM/FM radio is a constant stream). This allows audio from the buffer to keep playing if no data is coming in, with the expectation that data will come in before the buffer is empty. DAB, I believe, is also a constant stream, but has a delay for the encoding of the source signal.
It might be possible, depending on how you listen on-line, to adjust the 'receive' buffer using the player software. This would make the signal less wrong, but you can't adjust the other buffers.
I don't know if Radio 4 does this, but some radio stations use a 7-second delay between the studio and the broadcast. This allows them to filter any swears that might be uttered on phone-ins etc. They adjust the studio time forward by 7 seconds, so time signals are broadcast at the correct time rather than being delayed.