Hide не завершает приложение, а лишь скрывает видимость гл.формы. Поэтому приложение висит в памяти (продолжает быть запущенным).
Закрывать надо не с помощью Hide, а с помощью Close();
Если хотите завершить приложение, находясь не важно в какой форме, можно так:
Environment.Exit(0); // где 0 - ваш произвольный код возврата в ОС