BroadcastQueue: Handle successor ProcessRecords.

In rare cases, a request to startProcessLocked() returns a different
ProcessRecord from what is eventually attached.  This change fixes
the modern stack to not be confused in these situations, by always
looking up the relevant BroadcastProcessQueue, instead of trying to
do a raw ProcessRecord equality check.

Add health check to verify that cold starts aren't abandoned.  Add
debugging details for each "blocked" broadcast.

Bug: 253617038
Test: atest FrameworksMockingServicesTests:BroadcastRecordTest
Test: atest FrameworksMockingServicesTests:BroadcastQueueTest
Test: atest FrameworksMockingServicesTests:BroadcastQueueModernImplTest
Change-Id: Iab95f80ee554589f66eefe351370d37e44210295
3 files changed