No idea why the problem started, but the resolution was to add a SQL Object into the Process Globals of each Handler.
Until now I had one SQL object in Process Globals of Main, which I initialised in AppStart() then called from every module. There are about 150 references to the SQLite object in Main class ie EnergyDB.ExceQuery() and 200 queries and non-queries in the other code modules and Handlers ie Main.EnergyDB.ExecQuery(). This has worked fine for many years until last week.
I have now added a SQL Object into each handler which I initialise in Sub Handle(req As ServletRequest, resp As ServletResponse) and then use SQL.Close at the end of the Handler Sub.