Ваш второй вариант уже ближе к правильному. Не совсем понятно, почему вы хотите сделать методы статическими, я бы создавал объект класса внутри. Но возможно, вам действительно больше подходит статика.
По поводу доступа к приватным полям — эту проблему можно решить, например, создав event'ы во вспомогательном классе, и затем подписать на них методы основого класса.