Единственная серьезная проблема, которую я вижу, состоит в том, что другой класс уже имеет ссылку на старый экземпляр, это не сделает его недействительным. Так что, пока все классы делают это:
CategoryHandler.Instance.Method();
вместо
CategoryHandler singleton = CategoryHandler.Instance;
...
singleton.SomeMethod();
с вами все будет в порядке, если вы счастливы, что синглтон истечет в следующий раз, когда на него будут ссылаться, а не через шестьдесят минут.
Если вам нужно, чтобы срок его действия истекал точно через определенный промежуток времени, вам нужно будет использовать таймер и заменить экземпляр в методе обратного вызова (будьте осторожны, таймер вызовет обратный вызов в другом потоке, поэтому обязательно реализуйте поток безопасный шаблон синглтона)