When i need to address someone speak a language in a particular situation or for some purpose, i should write 'speak in Thai' or 'speak Thai'.
Have a lovely time,
NOT A NATIVE TEACHER
If you say you 'speak' a language, you have the ability to speak it and you speak it habitually..
I speak Thai.
If you say you 'speak in', you speak it on a speacial ocassion e.g meeting, lecture...
My Grandparents won't understand a thing if the priest speaks in French.
Source: Longman Dictionary of Common Mistakes (My best friend)
I can also say: "When Mila came to London with me, she spoke English all the time". This is not in line with Longman. Many native speakers might be more likely to use in English in this last example, but the omission of in is not a mistake.
I think the point is 'habit'.. as far as my understanding goes, in sentence:
"When Mila came to London with me, she spoke English all the time"
Mila's habit changed here because she has to speak English instead of Czech which is most likely (all the time)... Even 'all the time' implies habit...
Just my opinion though