No comments on the code. But the runtime is O(wn), as it should be for this algorithm.

Consider a single run of `_LSBSort`. Let n be the length of `arr`. Clearly the first loop is time O(n). Let si be the length of `deques[i]`. Then the second loop is time
$$ O(s_1) + O(s_2) + \dots + O(s_{10}) = O(s_1 + s_2 + \dots + s_{10}).$$
Noting that each element is present in exactly one of the deques, we conclude
$$s_1 + s_2 + \dots + s_{10} = n.$$
Thus the entire method runs in time O(n). As it is called w times, we conclude the entire algorithm is O(wn) time.