Show backups at server level
The problem here is that if for example 7 out of 8 database backups
  fail in a job, that job is flagged up as 'failed', but the report will
  show that the last backup time was in that batch of failed backups,
  which it was, as it is selecting the one backup of 8 which succeeded.


To my understanding you want the job to report on the latest full backups on an instance when any of these are not meeting your thresholds.

In that case you could opt to get the the latest FULL backup of all databases, and then get the minimum value of that resultset.

;WITH CTE AS
(
SELECT 
sdb.Name AS DatabaseName,
MAX(backup_finish_date) AS LastBackUpTime
FROM sys.databases sdb
LEFT OUTER JOIN msdb.dbo.backupset bus ON bus.database_name = sdb.name
WHERE bus.type = 'D'AND bus.database_name NOT IN ('master', 'model', 'msdb', 'tempdb')
AND sdb.state_desc  = 'ONLINE'
GROUP BY sdb.Name
)

SELECT  @@SERVERNAME as serverName, 
        MIN(LastBackUpTime) as LastBackUpTime
FROM CTE;


If you also need the database name of the database with the oldest successful full backup

;WITH CTE AS
(
SELECT 
sdb.Name AS DatabaseName,
MAX(backup_finish_date) AS LastBackUpTime
FROM sys.databases sdb
LEFT OUTER JOIN msdb.dbo.backupset bus ON bus.database_name = sdb.name
WHERE bus.type = 'D'AND bus.database_name NOT IN ('master', 'model', 'msdb', 'tempdb')
AND sdb.state_desc  = 'ONLINE'
GROUP BY sdb.Name
)

SELECT TOP(1)  @@SERVERNAME as serverName, 
        LastBackUpTime as LastBackUpTime,
        DatabaseName
FROM CTE
ORDER BY LastBackUpTime ASC;


I would not use job execution stats, as they can return false positives. 

Next to checking if the backup jobs did their job correctly, you should also validate your backups by restoring them somewhere.