After digging around for a while, I found that assigning a content scope to the API key that I was using to authenticate my layer (and as a result have it available to the public in my application) seemed to solve the issue. I still cannot share my layer to everyone in ArcGIS Online, but my layer now shows up in my application and is available to the public. I'm not 100% positive if updating API key content scope was really the solution (because the sharing to everyone option is still grayed out in AGOL), but it did seem to do the trick.
For those wondering, the steps are:
1. Open your ArcGIS Developers account Dashboard.
2. Go to API Keys and navigate to the API key that is being used.
3. Select the key and click on Overview, scroll down to the bottom of the page to the 'Maps, layers, and data' window and click 'Set content item scopes'.
4. Select the necessary layer.
Note: Initially nothing changed when I updated the scope, I had to wait a few hours for my layer to show up in my application.