I found a work around for this when setting up token acquisition in the Program.CS file. The error is caused because the hosted service is a singleton but the token acquisition is a scoped service. This stops the error since the Token generation happens as a singleton.
.AddTokenAcquisition(isTokenAcquisitionSingleton: true)