I think, as far as build tools are concerned, each and every single one has other targets as for what is important. Most systems I used did quite a bad job, because they are overly complicated or come with a number of bugs you have to know about. That's why there are even build tools, which you have to program yourself (you can do so in NodeJS with a JS file or add a build.rs to your Rust project, both of which are programmed in the native programming language). That's also not i deal, because you have to do the heavy lifting yourself.
The best experience I made was with Rollup (which is quite similar to Webpack). It's mostly just about adding plugins or extensions and if you really need something custom, just write a small script and add it. I was missing different hooks, though, so that certain things became surprisingly difficult :/
Should the package manager be integrated with the build tool?
I think integrating one might add a few benefits, or at least reduce the meta information you have to store. It gives you the benefit of just downloading a package which is required as dependency, to name one example.
Do you think they should be declarative or more procedural?
Personally, I prefer declarative with the possibility to add custom behavior.
Should they be a separate language? Full-on programming language?
I'd say the native language, as it offers the greatest flexibility and you already have a tool-chain in place to handle it.
Should one even try to make it work for multiple languages, or is that hopeless??
I dunno. I'd say: Focus on your language first. Do you want to create a language with ecosystem, or do you want to create a build tool in the first place?
How important are plugins?
Plugins can make your life a lot easier, if you go for declarative. I'd say: create a few for the most important things, which directly benefit you. Leave the rest to the community.
Which build systems are good examples?
I like Rollup a bit, I guess. I also hear good things about Meson (a lot of big projects, like Mesa, seem to change to it). You might also find Ninja interesting, since one of its purposes is to be used inside other higher-level build systems...