The game freezes whenever it attempts to download a player's skin for the purposes of a player head texture when in offline mode. This happens not only when generating a player head item, but also when loading a player head as a block or an item.
My guess is that the code is not programmed to recognize that the client is in offline mode when trying to download a player skin for the head. This doesn't happen when trying to download the player's skin, so player heads should also default to a Steve skin when in offline mode.
I was playing in offline mode yesterday because the Internet connection at the house I just moved into had not been set up yet. Forgetting that I was offline, I used /give to get a player head. The specific command I used:
/give BoxFigs minecraft:skull 1 3 {SkullOwner:Chica_Chicken}
As soon as I ran the command, the game froze. It said "Not Responding" on the top. I closed it and relaunched. When I tried to load the world again, it was stuck in attempting to load the player head in my inventory. I closed the game again and used NBTExplorer to delete the head item.
I checked my log file, and this is what appeared when the game froze the first time:
[21:49:23] [Texture Downloader #1/ERROR]: Couldn't download http texture
java.net.ConnectException: Connection timed out: connect
at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) ~[?:1.8.0_31]
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) ~[?:1.8.0_31]
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) ~[?:1.8.0_31]
at java.net.AbstractPlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_31]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[?:1.8.0_31]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[?:1.8.0_31]
at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_31]
at java.net.Socket.connect(Unknown Source) ~[?:1.8.0_31]
at sun.net.NetworkClient.doConnect(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.http.HttpClient.openServer(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.http.HttpClient.<init>(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.http.HttpClient.New(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.http.HttpClient.New(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) ~[?:1.8.0_31]
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) ~[?:1.8.0_31]
at bmb$1.run(SourceFile:106) [1.8.3.jar:?]
If it makes any difference, my laptop was wirelessly connected to the network, but the network wasn't connected to the Internet.
Linked issues
Comments 6

Marking as original, since the other report didn't provide needed info.
Duplicate of/related to MC-65587, but you can mark that one as a duplicate of this one since BoxFigs seems more interested in this bug.
@ @unknown:
This issue is about the game freezing in offline mode, so they're two separate bugs. I'd say mark it as related.
I think it's the same bug, the game freezes until it has the texture - the implications of this are different in online vs offline mode, but it's the same issue. Anyway, it's marked as a dupe now 🙂
@ @unknown:
Now that I've obtained the player heads I wanted to get the other day, I see what you mean. I seem to remember in previous versions that it temporarily showed a Steve skin until it grabbed the actual texture. It doesn't do that anymore.
Dupe of MC-68353