Your point 2, is obviously correct.
As for the point 1, we construct the automaton: let's remember how much more 0's we've read than 1's. Then we have transitions:
S0 by 0 to S1
S0 by 1 to S-1
S1 by 0 to S2
S1 by 1 to S0
S-1 by 0 to S0
S-1 by 1 to S-2
S2 by 1 to S1
S-2 by 0 to S-1
S0
is initial, only S0
is final. This way we are sure, that in whatever state we are, the number of $0$'s and $1$'s that were read so far differs by at most $2$ and in the final state the number are the same.
Then the language is
$$ \Bigl(0(01)^*1+1(10)^*0\Bigr)^*$$
The large parenthesis corresponds to all paths from S0
to S0
, and we can repeat it as many times as needed.