You've done a good job of explaining the main differences. A couple of comments:
$\vdash$ is "syntactic consequence", e.g. if we have $a \vdash b$ it means if we've written down $a$ as something we know, we can immediately write down $b$ as something we know.
I would clarify further that it's less about knowledge and more about proof. $a \vdash b$ is true if there is a valid proof of $b$ from $a$, so it's relative to whatever we have decided "valid proof" means. For example, some philosophers and logicians have insisted on denying certain types of proofs and have proposed very restrictive logical systems where you are restricted in when you can deduce $b$ from $a$. In some such systems, $b$ may follow semantically from $a$ ($a \vDash b$) but there may be no way to prove it (so $a \not \vdash b$).
Concretely, some logicians deny that $\lnot \lnot a \vdash a$ -- they aren't willing to accept $\lnot \lnot a$ as a proof of $a$. So it may be that in every world where $\lnot \lnot a$ is true, $a$ is true (semantically), that is $\lnot \lnot a \vDash a$. But if you insist on a standard of proof where $\lnot \lnot a$ is not a good proof of $a$, then $\lnot \lnot a \not \vdash a$.
$\vDash$ is "semantic consequence" ... However I don't know if this is necessarily just a "true"-only thing. It seems conceivable that we could make one for falsehoods too, i.e. if $a \vDash b$ might mean if $a$ is always false then $b$ is always false, of if $a$ is always "dog" then $b$ is always "dog", etc. But I am unsure of this one.
Your speculation here is a bit inaccurate. $a \vDash b$ usually means some variant of "in every possible world where $a$ is true, $b$ is also true". The definition doesn't consider worlds where $a$ is false. And there are no words where $a$ is always "dog" -- $a$ is some sentence, so it is only ever true or false. Calling $a$ a dog would be a sort of semantic mismatch. Maybe $a$ is some fact about dogs, but not a dog itself.
Do I have the right idea so far?
Yes, and let me comment on one thing. In logic, we insist on being extremely formal and distinguishing between things that have different definitions, even if they ultimately amount to the same thing. For example, we distinguish between $(\lnot a) \land (\lnot b)$ (not $a$ and not $b$) and $\lnot (a \lor b)$, even though these ultimately end up being equivalent.
So it is with $\vDash$, $\vdash$, and $\to$. We insist on distinguishing between them because they are defined differently -- and you have summarized the different definitions well. However, there are important senses in which they are all equivalent. In particular, you will probably prove some theorems like:
(Soundness) If $a \vdash b$, then $a \vDash b$.
(Completeness) If $a \vDash b$, then $a \vdash b$.
(Provability of implication) If $a \to b$ is provable -- that is, if $\vdash (a \to b)$ -- then $a \vdash b$. Similarly, if $a \vdash b$, then $\vdash (a \to b)$.
So, all three of them end up being equivalent concepts in the end, but it is important to keep them mentally distinct. There are even some (generally faulty) logical systems where the three concepts are not equivalent, so you have to be careful to not assume they are the same until it is proven.