補足しておきますね。

Intentを送り出す仕組み受信側によって、メソッドを変更する必要があります。
たとえばActivity以外との通信の場合、startActivityではだめで、startBroadcastを使う必要があります。今回のようにAppWidgetProviderとの通信の場合は当然startBroadcastが必要です。
ここまではIntent系のページをよく読むと書いてある場所もあります。

で、予想通りと申しますか、この事実は実はPendingIntentも同じです。
PendingIntentについてもgetActivityではダメでgetBroadcastを使用する必要があります。これにより、受信側がきちっと受け取れるようになります。

この手の汎用Intentとかの処理って、もう少し整理した表とかを作ってきちんと動作を理解しないと詰まるなあと言うのが実感。
いっそ、専用Intentの確認からしておけばよかったかなーという感じです。