Tente configurar um trabalho do SQL Agent que seja executado em cada instância, a cada minuto, e execute um script para procurar o banco de dados em um estado não restaurado, verifique a tabela e execute o procedimento se ele não existir. Peguei os nomes dos objetos da sua pergunta para que possam ser alterados caso estejam fora do seu ambiente.
if exists ( select 1 from sys.databases where state_desc <> 'RESTORING' and
[name] = 'ASPState' )
begin
if ( object_id('tempdb.dbo.ASPStateTempSessions') is null )
begin
exec sp_executesql @stmt = N'exec ASPState.dbo.CreateTempTables'
end
end