There were days when my husband was emotionally and physically abusive to me, but that’s just history now. He still criticizes me, but worst part is not there anymore. I know he is a good man.
This doesn't sound like a good man.
"He used to hit me, now he criticizes me, he's a good man" See how that makes no sense?
When was he last physically abusive to you?
Why are you still tolerating his verbal abuse?
If he's still doing one, he'll eventually start the other again.
There's nothing wrong with fantasizing about someone else. It can be a fun outlet. You don't have to let everyone know your thoughts.
However, if you're doing this with the thought of being with someone who won't criticize, or perhaps hit you, perhaps you need to think about it you really want to be with him, deep down.