LoadingMessageSourceProvider: more code and tests

Introduce timeout, but not implemented yet.
Reimplement timeout the way it was implemented