How to translate Widget Description in constructor?

You have slight timing issues because you generate title first (in constructor call), but postpone text domain load to later (init at default priority). Text domain mus be loaded for __() to translate correctly. Those are not “lazy”, they generate and return strings right where they are called.

Text domain should be loaded very early, Codex recommends at plugins_loaded for plugins.

Probably your class shouldn’t be trying to be both valid widget and plugin loader, separate it out.