А как насчет возможности скрыть форму, когда она свернута, а затем отображается, когда вы нажимаете на иконку в трее?
В событии изменения размера формы сделайте там проверку и скройте форму
private void Form_Resize(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
this.Hide();
}
}
Затем при нажатии на значок на панели задач просто восстановите его.
private void notifyIcon_Click(object sender, EventArgs e)
{
this.Show();
this.WindowState = FormWindowState.Normal;
}