Did you ever figure out the answer to your questions? I converged to almost the same code and have the same doubts.
Also, I noticed that my implementation became incredibly slow after adding the char lstm. Did that happen to you as well?