Is there any difference between

A. Let's speak English


B. Let's speak in English


Is sentence B bad? If both are okay, and have different meanings, what's the difference in meaning?
-- I need to practice for my English conversation lesson.
-- OK. Let's speak English then!

-- I think those people at the next table are listening to what we are saying.
-- In that case, let's speak in English! That way they won't know what we are talking about.

Teachers: We supply a list of EFL job vacancies
Are your sentences not interchangeable?

Aside from examples, can you also describe the difference?
Yes. They are interchangeable, but I gave the contexts in which a native speaker might be inclined to choose one in preference to another. (Other native speakers might choose differently, but I think most would find these very appropriate within the contexts illustrated.)

The difference is extremely subtle. speak [language] is a non-contrastive do speaking using [language]. speak in [language] is a contrastive communicate using this method rather than another.

The verb say allows Say it in English, but not *Say it English. So the native speaker associates speak with say more when in English is used. Hence, in the examples I gave above, Let's say it in English so they don't understand us, but not *You need to practice conversation, so let's say English.

I'm winging it here -- just giving my guesses. I don't think there is any reliable rule, but maybe another forum member will weigh in.

'Let's speak in English' means we usually speak some other language; but this particular instance we would prefer English
Students: We have free audio pronunciation exercises.