已知数列 $\left\{a_n\right\}$ 的前 $n$ 项和为 $S_n$ ,当 $n \geq 2$ 时,$S_n\left(S_n-a_n+1\right)=S_{n-1}$ .
(1)证明:数列 $\left\{\frac{1}{S_n}\right\}$ 是等差数列;
(2)若 $a_1=\frac{1}{2}$ ,数列 $\left\{\frac{2^n}{S_n}\right\}$ 的前 $n$ 项和为 $T_n$ ,若 $m T_n \leqslant\left(n^2+16\right) \cdot 2^{n+1}$ 恒成立,求正整数 $m$ 的最大值.
$\text{A.}$
$\text{B.}$
$\text{C.}$
$\text{D.}$
$\text{E.}$
$\text{F.}$