My two recommendations like the others
1) American Express True CashBack
2) CIMB World Mastercard
Why? The above two cards are probably the only Cashback card that awards the cashback within the same statement month, so you do not need to worry if Amex don't waive your annual fees (CIMB Cards does not have annual fees). If you spend $100 on January, your statement of January will be $100 minus the cashback. If Amex is not willing to waive the annual fee, just pay off your statement and cancel the card, you still get to enjoy the final cashback.
Other cashback cards, like HSBC Advance, Standard Chartered Unlimited awards the cashback at the end following month, which means you have to pay your statement in full first and then when the cashback comes in at the end of the following month, it will be on top of your credit limit. The risk is, if you make a large purchase the month before your card annual fee is due, and when the statement comes with the annual fee is charged, you face the risk of the bank not waiving the annual fee for that card, and should you cancel it, you have to forgo the cashback (that will only come in at the end of the following month). It's a annual "headache" and as such, try to avoid using those cards 1 month before the annual fee is being charged, and utilize any cashback in those card first, just to be safe in case the bank rejects the annual fee waiver.