First, your background.js will not be running in the background the entire time the browser is opened. It is triggered by the opening of the popup. Useful explaination. If you want it to act in the background, remove it from your .html and add the following to your manifest:
"background": {
"scripts": ["background.js"]
},
Now on the chrome://extensions page, you should see "Inspect views: background page" by your app. However, you may not even need a background script for your extension. If you only want it to act when the icon is clicked (the browser action), then you won't need to add this.
Second, as mentioned, the .app.* of your listener signified it is only for apps, not extensions.
For some reason I was having trouble with your onclick event and I'm not that familiar with it. In the script what I usually do is
function fillPopup(){
var elem = document.getElementById('start');
elem.addEventListener('click', funcdostuff);
}
document.addEventListener('DOMContentLoaded', fillPopup)
I'm not fully sure what you are trying to initialize with the click of the start button. My advice would be to draw out or outline the path of initialization for what you are trying to do and then make sure that is valid with the api's. For example, your initial code would be
Waits for a browser action of clicking the icon (defined in manifest)
Which launches the .html
The .html then launches the script.
The script waits for a the start button to be pressed
I apologize if this advice isn't that relevant for you, but since you said you are new to chrome apps and plugins, I personally find it a good place to start when deciding what to put where.