You can omit ”for”, at least in spoken/informal language.
To me it sounds more natural to say “(For) how long will you stay here?”
That’s not a natural sentence. You can say “How much time will you spend here?”
“How long is the visa good” will be understood, but the normal thing to
say is “How long is the visa good for”.
I myself would say “(For) how long is the visa valid?”