Advantages: The entire repository is a single file (SQLite database), which makes some things easy (backup, putting it on a USB drive, mailing it to another person) and has support for tickets and a wiki built-in. It is simple, but feature-complete for the use cases it is intended for.
Disadvantages: The command line interface is lacking in some regards (which can be fixed through addon tools, but isn't for everybody). In particular, there's a huge feature gap between `fossil ui` and `fossil timeline` for viewing history. Like Git (and unlike Mercurial and Bzr), you're forced to deal with commit hashes rather than numerical version numbers (which can be an annoyance when using annotate/blame, for example). Third-party contribution via `fossil bundle` is too limited IMO; you really want all contributors to have direct access to the repository to be productive.
2. Even local revision numbering has useful applications, such as annotate/blame, where numbers (unlike hashes) follow a chronological ordering. It is still better than not having them at all.
Overall I'd say fossil has its share of warts and it currently doesn't justify the contribution barrier it introduces with enough in return.
Wiki supports the wiki format, markdown, and HTML now.
There is now a "fossil search" command for full-text search (including artifacts, if enabled).
I've never had a username/password failure so no idea what that could be.
For tickets, icomment is probably the solution you want but it's not very intuitive.
git add -p doesn't require a staging area per se, and I could see that being added as part of the commit process... but usually I like to test my changes a little bit before committing (e.g., does this even compile) and I can't do that on a partial commit.
I also use it for many non-public repositories, including the Linux distribution I maintain (with a few hundred packages).
My experience is that it is very convenient and easy to adapt.