@EA_David I can confirm the method of joining a game works flawlessly every time. I'm back to using my wolverine controller again. Here's a guide you can post up as a temporary work around.
After starting NFS Heat and arriving at the "press A to start" screen, a technical issue may take place in which the game's software, fails to recognize the controller, however it's still recognized by the console. If you encounter this issue, a temporary work-around has been found to bypass this screen. Any attempt to join into a lobby/game will either result in you entering that lobby/game with your controller now functioning, or give you a "lobby is full" error while returning you to the main menu. Even if you get returned to the menu your controller should still start working again.
If you do not have any friends online within the game you can use a player in your "recently played with" list, or join active player in "looking for group" list.
Make sure before you begin that you are in the game and at the "Press A to start" screen.
Recent Players Method
1. Press Xbox home button.
2. Left once to the "People" menu and select recently played with.
3. Select a gamertag and if their account is not set to offline, it will tell you what activity they are doing right underneath their gamertag and gamerscore.
4. If it says "Need for Speed Heat" and they are currently in an online session, select "join party or game" then "join game". Your controller should now be functioning again.
5. If they are not playing "Need for Speed Heat" you'll need to select another gamertag until you either find someone who is, or use the "Looking for Group Method".
Looking for Group Method
1. Press Xbox Home button
2. Left twice to get to the "Multiplayer" menu.
3. Select "Looking for Group" then "Search or create posts".
4. Select "Need for Speed Heat".
5. Go down and select any of the most recent posts.
6. You should get a menu on the left side which that shows the gamertag for the "Host".
7. Select the "Host" gamertag, then "Join Party or Game", and finally, "join game".
8. If "join game" isn't selectable, back out and select another post to try a different host.
9. You should now be attempting to join a session. Regardless whether you join the game or recieved a "Lobby is full" error, your controller should begin functioning properly again.
10. If you join someone's game, you do not have to play with them if you don't want to. Just press "Start" and "Quit To Lobby". Your controller should still continue working and you may join a new online session.