Stabilizing and Improving Federated Learning with Non-IID Data and Client Dropout