For the first question, proving $S^n$ is compact directly from the definition could be very long and messy; I would suggest you use Heine Borel (your third question): consider the Euclidean norm $$ | \ \ \ |: \mathbb{R}^n \to [0, +\infty)$$ this is a continuous function, hence the preimage of a closed set of $[0, +\infty)$ is closed in $\mathbb{R}^n$. Since points are closed in $\mathbb{R}^n$ $$S^n = | \ \ \ |^{-1} (1) $$
is closed. Since the $S^n$ is bounded, it is compact.
For the second question the answer is all spaces with infinite open sets. Take a general topological space $(X, \tau)$, and simply take the cover of all open sets, $\tau$: a finite subcover is trivially given by $\{ X \}$. Also, asking that $X$ not be part of the cover still leaves you quite far from compactness: take $(0, 1)$, and consider an open cover $\mathscr{U}$ such that $\left(0, \frac23 \right), \ \left(\frac13, 1 \right) \in \mathscr{U}$. (If you want $\mathscr{U}$ to be infinite, just throw in infinite other open sets). $\{\left(0, \frac23 \right), \ \left(\frac13, 1 \right) \} \subseteq \mathscr{U}$ is a finite subcover of $\mathscr{U}$, and clearly an open interval is far from being compact.
For the third question I suggest you read here , or here. Also note that the " $\Leftarrow $" is also true.
For your last question, I will include a sketch of a proof I am familiar with (the whole proof is rather long, and you can find it, and probably others, in many General Topology textbooks):
Let $I = [0, 1]$, let $\mathscr{U}$ be an open cover of $I$, and let $$X = \{x \in I \ | \ [0, x] \ \text{is covered by finitely many} \ U \ \in \mathscr{U} \}$$
if you prove that $I = X$ you are done. You can do this by proving that $ \emptyset \neq X$ is an interval, and is simulteneously open and closed in $I$. Since the only interval $\subseteq I$ with this property is $I$ itself, you are done.
(sorry, I'm slow with latex and by the time I finished, most of this was already covered in the comments; I hope it helps anyway!)
Indeed take the cover $\mathcal{U}=\{\{x\}: x \in X\}$. This is clearly a cover of $X$ as every $p \in X$ is in $\{p\} \in \mathcal{U}$ and in fact only in that set.
It's an open cover because the topology is discrete and so all subsets of $X$ are open.
A finite subcover is a finite subset of $\mathcal{U}$ (so these are all singleton sets too) that together cover $X$ too. But this cannot exist: if $\mathcal{F}$ is a finite subset of $\mathcal{U}$ then it consists of finitely many singletons $\{x_1\},\{x_2\},\ldots, \{x_N\}$ for some finite $N$. But $X$ has infinitely many points so there are infinitely many $x \notin \{x_1,\ldots,x_N\}$, say $p$ is one of those. Then $p$ is in none of the sets of $\mathcal{F}$, and so this finite subset of $\mathcal{U}$ is not a cover of $X$.
Hence $\mathcal{U}$ has no finite subcover. In fact, if you think about it, we cannot remove a single element $\{p\}$ from $\mathcal{U}$ or $p$ would no longer be covered at all; every point is only covered once... The set $X$ is not even an element of $\mathcal{U}$ so does not qualify as a possible subcover. A subcover is a selection of open sets from the cover, and $X$ is not one of them, there are just singletons.
To think about: the open cover of all doubletons $\{x,y\}, x \neq y$ would also have worked: a finite subset (say of size $N$) of that cover can only cover $2N$ points at most and so must also miss points of $X$, etc. In this cover every point is covered infinitely many times, and still we cannot reduce it to a finite subcover.
To show non-compactness we only have to find one cover without a finite subcover, because compactness is the strong statement that every open cover of $X$ must have a finite subcover. So one counterexample suffices to kill it.
Best Answer
You're proof is the right idea but you should be more formal about things when doing topology. Assume that $A$ is compact and for the sake of contradiction, infinite. Then, consider the following open cover of $A$, $C=\{\{x\}:x\in A\}$. Let $H$ be any finite open subcover, then we can write $H=\{\{x_i\}:1\leq i \leq N\}$ for some $N\in\mathbb{N}$. Since $A$ is infinite, there is an element $y\in A$ such that $\{y\}\not\in H$. This contradicts that $H$ is a cover, so such a finite sub cover cannot exist.
For the other direction, assume that $A$ is finite. Then we have that $A = \bigcup\limits_{i=1}^N \{x_i\}$. Let $C$ be an open cover of $A$, $C=\{U_j: j\in J\}$ for some open sets $U_j$ with index set $J$ (possibly infinite). Since $C$ is a cover, each $x_i\in A$ must belong to some open set in $C$, which we denote $U_i$. Taking $K = \bigcup\limits_{i=1}^N U_i$ gives a finite open subcover of $A$, thus $A$ is compact (since $C$ was arbitrary, all open covers have a finite open subcover).